Здравствуйте, подскажите вывожу на форму таблицу значений как элемент формы, с колонками все норм появились более менее как надо, только заголовки не сработали. Основное еще в таблицу значений добавляю строки, в ТЗ они есть но на форму не выводятся. А как в таком случае их можно вывести строки именно на форму уже?
&НаСервере
Процедура ЗаполнитьТаблицуЦенНоменклатурыНаСервере()
СписокВидовЦен = Объект.ВидыЦен.Выгрузить(, "ВидЦены");
СписокНоменклатуры = Объект.Товары.Выгрузить(, "Номенклатура");
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Номенклатура");
Сч = 1;
МассивНаименованийКолонокЕдИзм = Новый Массив;
МассивНаименованийКолонокЦена = Новый Массив;
Для каждого Элемент Из СписокВидовЦен Цикл
АдаптированноеНаименование = СтрЗаменить(ТРег(Элемент.ВидЦены.Наименование), " ", "");
ТЗ.Колонки.Добавить(АдаптированноеНаименование);
ТЗ.Колонки.Добавить("ЕдиницаИзмерения" + Сч,, "ЕдиницаИзмерения");
ТЗ.Колонки.Добавить("Цена" + Сч,, "Цена");
МассивНаименованийКолонокЕдИзм.Добавить("ЕдиницаИзмерения" + Сч);
МассивНаименованийКолонокЦена.Добавить("Цена" + Сч);
Сч = Сч + 1;
КонецЦикла;
Для каждого ЭлементНом ИЗ СписокНоменклатуры Цикл
НоваяСтрока = ТЗ.Добавить();
НоваяСтрока["Номенклатура"] = ЭлементНом.Номенклатура;
Для Сч = 1 По МассивНаименованийКолонокЦена.Количество() Цикл
//заполнить виды цен
НоваяСтрока["Цена" + Сч] = 1;
НоваяСтрока["ЕдиницаИзмерения" + Сч] = 1;
КонецЦикла;
КонецЦикла;
МассивТипаВыбора = Новый Массив;
МассивТаблицыЗначений = Новый Массив;
МассивРеквизитов = Новый Массив;
ОписаниеТипаВыбора = Новый ОписаниеТипов("ТаблицаЗначений");
МассивТаблицыЗначений.Добавить(Новый РеквизитФормы("Список", ОписаниеТипаВыбора, "", "ТЗН"));
ИзменитьРеквизиты(МассивТаблицыЗначений);
Для Каждого Колонка Из ТЗ.Колонки Цикл
МассивРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения,"Список."));
КонецЦикла;
ИзменитьРеквизиты(МассивРеквизитов);
ТаблицаПолейВыбора = Элементы.Добавить("ТЗН", Тип("ТаблицаФормы"), Элементы.Результат);
ТаблицаПолейВыбора.ПутьКДанным = "Список";
ТаблицаПолейВыбора.Отображение = ОтображениеТаблицы.Список;
СчЕдИзм = 1;
СчЦена = 1;
Сч = 1;
Для Каждого Колонка Из ТЗ.Колонки Цикл
Если Колонка.Имя = "Номенклатура" Тогда
ДобавитьНовыйЭлемент(Колонка.Имя, Тип("ПолеФормы"),ТаблицаПолейВыбора, "Список." + Колонка.Имя);
//КонецЕсли;
ИначеЕсли Колонка.Имя = "Цена" + СчЦена Тогда
СчЦена = СчЦена + 1;
ИначеЕсли Колонка.Имя = "ЕдиницаИзмерения" + СчЕдИзм Тогда
СчЕдИзм = СчЕдИзм + 1;
Иначе
ИмяСтаршейГруппы = Колонка.Имя + "Группа";
ДобавитьГруппу(ИмяСтаршейГруппы, Тип("ГруппаФормы"), ТаблицаПолейВыбора);
ДобавитьНовыйЭлемент(Колонка.Имя,Тип("ПолеФормы"),Элементы[ИмяСтаршейГруппы],"Список." + Колонка.Имя);
ИмяМладшейГруппы = "ГруппаКолонок"+Колонка.Имя;
ДобавитьГруппу(ИмяМладшейГруппы, Тип("ГруппаФормы"), Элементы[ИмяСтаршейГруппы]);
ЦенаВставка = МассивНаименованийКолонокЦена[Сч - 1];
ДобавитьНовыйЭлемент(Колонка.Имя + "Цена",Тип("ПолеФормы"),Элементы[ИмяМладшейГруппы],"Список." + ЦенаВставка);
ЕдИзм = МассивНаименованийКолонокЕдИзм[Сч - 1];
ДобавитьНовыйЭлемент(Колонка.Имя + "ЕдиницаИзмерения", Тип("ПолеФормы"), Элементы[ИмяМладшейГруппы], "Список." + ЕдИзм);
Элементы[ИмяМладшейГруппы].Группировка = ГруппировкаКолонок.Горизонтальная;
Сч = Сч + 1;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ДобавитьГруппу(Имя, Тип, Родитель)
НовыйЭлемент = Элементы.Добавить(Имя, Тип, Родитель);
НовыйЭлемент.Вид = ВидГруппыФормы.ГруппаКолонок;
КонецПроцедуры
Процедура ДобавитьНовыйЭлемент(Имя, Тип, Родитель, ПутьКДанным)
НовыйЭлемент = Элементы.Добавить(Имя, Тип, Родитель);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ПутьКДанным = ПутьКДанным;
КонецПроцедуры
ПоказатьПрикрепленные файлы:
По теме из базы знаний
- Условное оформление элементов форм в пользовательском режиме 1С (управление видимостью и доступностью элементов форм)
- Программный вывод таблицы значений в таблицу на управляемой форме
- Как передать Таблицу Значений в Динамический Список?
- Визуализация таблицы значений на управляемой форме
- Библиотека процедур и функций для технологической платформы "1С: Предприятие 7.7"
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4)
То есть это уже полноценный реквизит формы получается. Не разобрался. Подумал раз программно выводится, то и так же должен как то добавляться построчно, я ошибался. Спасибо за помощь и в том числе за искрометный юмор, который помог мне осознать какие у меня еще пробелы в знаниях.
ЭтаФорма.Список.Загрузить(ТЗ);
То есть это уже полноценный реквизит формы получается. Не разобрался. Подумал раз программно выводится, то и так же должен как то добавляться построчно, я ошибался. Спасибо за помощь и в том числе за искрометный юмор, который помог мне осознать какие у меня еще пробелы в знаниях.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот