![]() |
![]() |
|
Внешняя обработка. Работа с табличным полем. | ☑ | ||
---|---|---|---|---|
0
kindecstasy
08.09.09
✎
02:17
|
Здравствуйте. Только начинаю осваивать конфигурирование. Использую 1С8.1 "Версия для обучения программированию". Столкнулся с проблемой. Как заполнять строки табличного поля? Пусть Таб1 - Табличное поле на форме. Плюс у него 2 колонки: Имя и Время. Пытаюсь вытворять такое:
Процедура ЗаполнитьТаблицу1() Выборка = Справочники.Справочник1.Выбрать(); Пока Выборка.Следующий() Цикл Запись = Выборка.ПолучитьОбъект(); Если Запись.ПометкаУдаления Тогда ТабличноеПоле1.Добавить(); ТабличноеПоле1.ЗаполнитьЗначения(Запись.Наименование,"Имя"); ТабличноеПоле1.ЗаполнитьЗначения(Запись.Цена,"Время"); КонецЕсли КонецЦикла; КонецПроцедуры Пытаюсь создать новую строку и заполнить значениями из справочника, у которых пометка на удаление взведена. Но эта зараза, добавляет всего одну запись, которая идёт самая последняя по порядку в справочнике. И одинаковых записей ровно столько, сколько всего записей в справочнике. Как я понял, работа с этим контролом кардинально отличается от дельфового TListView?? Короче, дайте пожалуйста рабочий пример, а если вас не затруднит, обьясните, что я делаю не так. Кстати, если заменяю кусок: ТабличноеПоле1.Добавить(); ТабличноеПоле1.ЗаполнитьЗначения(Запись.Наименование,"Имя"); ТабличноеПоле1.ЗаполнитьЗначения(Запись.Цена,"Время"); на Сообщить(Запись.Наименование+" "+Запись.Время); то процедурка корректно пробегает по записям. Грешу конечно на себя, скорее всего просто не правильно заполняю табличку. |
|||
1
ТелепатБот
гуру
08.09.09
✎
02:17
|
||||
2
quest
08.09.09
✎
02:35
|
свяжи с ТЗ и в нее пиши
Процедура ЗаполнитьТаблицу1() Выборка = Справочники.Справочник1.Выбрать(); Пока Выборка.Следующий() Цикл Запись = Выборка.ПолучитьОбъект(); Если Запись.ПометкаУдаления Тогда ч = ТЗ.Добавить(); ч.Имя = Запись.Наименование; ч.Время = Запись.Цена; КонецЕсли КонецЦикла; КонецПроцедуры |
|||
3
kindecstasy
08.09.09
✎
03:01
|
Если я вас правильно понял, сделал вот так:
Процедура ЗаполнитьТаблицу2() Выборка = Справочники.Справочник1.Выбрать(); ТЗ = Новый ТаблицаЗначений; ЭлементыФормы.ТабличноеПоле1.Значение = ТЗ; Пока Выборка.Следующий() Цикл Запись = Выборка.ПолучитьОбъект(); Если Запись.ПометкаУдаления Тогда ч = ТЗ.Добавить(); ч.Имя = Запись.Наименование; ч.Время = Запись.Цена; КонецЕсли КонецЦикла; КонецПроцедуры Результата к сожалению не изменился. Если не правильно, обьясните пожалуйста. |
|||
4
quest
08.09.09
✎
03:39
|
тыкни в свйоства своего поля и укажи в данных - ТЗ тип - тпблица значений.
|
|||
5
kindecstasy
08.09.09
✎
05:51
|
quest, спасибо тебе. Это работает. Пока ещё конечно не совсем понятно как, но факт - есть факт :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |