![]() |
![]() |
|
v7: ТабличноеПоле | ☑ | ||
---|---|---|---|---|
0
oslokot
27.09.12
✎
20:18
|
Спокойной всем ночи!
Изучаю ТП, есть вопросы. В своей очередной обработке, я решил вместо ТЗ попробовать использовать ТП. Обработка простая, на форме есть несколько ТП, доступных для редактирования пользователю. Поставщиком данных являются Таблицы Значений. ТП как я понимаю, лишь красивое отображение данных от Поставщика данных? Соответственно, если происходит редактирование ячейки в ТП, я должен учесть все изменения и в поставщике данных? Например, если я двойным кликом отмечаю какое-либо значение в ячейке, я устанавливаю данное значение и в ТЗ (в Поставщике данных) Правильно я делаю, или есть более простой способ? // =============================== Процедура тпПоставщики_Выбор(ТП, НомерСтроки, ТипРегиона, ТипОбластиЯчейки) // Двойной клик по колонке "Выбор" присваиваю значение "1" в поставщике данных и обновляю ТП ТП.ПоставщикДанных.ТаблицаЗначений.УстановитьЗначение(НомерСтроки,"Выбор",1); ТП.ОбновитьСтроки(); КонецПроцедуры // тпПоставщики_Выбор |
|||
1
Wobland
27.09.12
✎
20:19
|
определись с версией платформы для начала. во-вторых, пойми, что семёрка - это вааще другое нечто
|
|||
2
КонецЦикла
27.09.12
✎
20:20
|
Почему бы просто не изменять данные?
ТП отражает состояние данных, автообновляется Почитай документацию |
|||
3
ОбычныйЧеловек
27.09.12
✎
20:22
|
(0) хочешь получить быстрый и правильный ответ - задай вопрос на форуме 1С++
|
|||
4
oslokot
27.09.12
✎
20:22
|
(1) я про клюшки вроде? или где?
(2) Да, знаю что есть автообновление ТП, но в Поставщике мне нужно явно менять переменную? |
|||
5
oslokot
27.09.12
✎
20:24
|
(2) То есть не так:
ТП.ПоставщикДанных.ТаблицаЗначений.УстановитьЗначение(НомерСтроки,"Выбор",1); А вот так?: ТЗ.УстановитьЗначение(НомерСтроки_ИзТП,"Выбор",1); ТП.ОбновитьСтроки() |
|||
6
Mikeware
27.09.12
✎
20:30
|
(5) вроде Поставшик сам и пишет в источник?
|
|||
7
Злопчинский
27.09.12
✎
20:32
|
(6) вроде или как?
. мне например тоже надо аналогичное ТС... . |
|||
8
oslokot
27.09.12
✎
20:33
|
(6) Да, но я меняю данные в ТП, я же должен их поменять так же и в Поставщике?
|
|||
9
oslokot
27.09.12
✎
20:48
|
Например, в тему. Устанавливаю флажок на ТП, он же не запомнится, после следующего обновления данных от ПоставщикаДанных, поэтому мне надо это событие отразить и у Поставщика тоже. Так?
|
|||
10
oslokot
27.09.12
✎
21:08
|
Ладно, ночь уже...
|
|||
11
Злопчинский
28.09.12
✎
01:23
|
надо бы завтра апнуть
|
|||
12
ADirks
28.09.12
✎
06:46
|
Вообще-то в ТП ничего не редактируется, это чистая визуализация. Редактируется источник данных (в данном случае ТЗ), и после этого обновляется ТП.
Типичная схема примерно такая: Перем тпМатериалы, тзМатериалы; Процедура Инит() тзМатериалы = СоздатьОбъект("ТаблицаЗначений"); тзМатериалы.ДобавитьКолонку("Материал", "Справочник.Материалы"); ПоставщикДанных = СоздатьОбъект("VTProvider"); ПоставщикДанных.УстТаблицуЗначений(тзМатериалы); тпМатериалы.ПоставщикДанных = ПоставщикДанных; тпМатериалы.ОбновитьСтроки(); КонецПроцедуры Процедура тпМатериалыВыбор(Источник, нСтрТП, КолонкаТП) тзМатериалы.УстановитьЗначение(нСтрТП, "Материал", ВыбМатериал); КонецПроцедуры т.е. ТЗ - поставщик данных (в д.с. тзМатериалы) объявляется как переменная модуля, чтобы не лазить каждый раз в ТП.ПоставщикДанных.ТаблицаЗначений. Про флаги опять же надо понимать, что в ТП ничего не хранится, поэтому так: Процедура тпМатериалыПриВыбореФлажка(Источник, нСтр, КолТП, ТипРегиона) тзМатериалы.ПолучитьСтрокуПоНомеру(нСтр); тзМатериалы.Галка = 1 - тзМатериалы.Галка; тпМатериалы.ОбновитьСтроки(); КонецПроцедуры |
|||
13
oslokot
28.09.12
✎
14:54
|
(12) ок, теперь понятно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |