Не подскажите, как заполнить ТЧ документа при открытие формы документа?
Использую такой код:
ЭлементыОтбора = Новый Структура;
ЭлементыОтбора.Вставить("Склад",СкладОтправитель);
ЭлементыОтбора.Вставить("Магазин",Магазин);
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ЗначенияЗаполнения", ЭлементыОтбора);
(1) получаешь форму и заполняешь в цикле. Затем открываешь. Через открыть форму ТЧ не заполняется. Ну либо использовать код, который сделает это при открытии.
ЭлементыОтбора.Вставить("Магазин",Магазин);
Номенкл = Новый ТаблицаЗначений;
//поищите как добавлять колонки в ТЧ
Номенкл.Колонки.Добавить("Номенклатура", );//
Номенкл.Колонки.Добавить("Количество", );//
Номенкл.Колонки.Добавить("Сумма", );//
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ЗначенияЗаполнения", ЭлементыОтбора);
ПараметрыФормы.Вставить("Номенклатура", Номенкл);
ОткрытьФорму("Документ.ЗаказПоставщику.ФормаОбъекта",ПараметрыФормы,ЭтаФорма);
КонецПроцедуры
//код для формы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("Номенклаутар") Тогда
Для Каждого Стр из Параметры.Номенклаутар цикл
НоваяСТрока = Объект.Товары.Добавить();
НоваяСТрока.Номенклатура = Стр.Номенклатура;
НоваяСТрока.Количество = Стр.Количество;
НоваяСТрока.Сумма = Стр.Сумма;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Метод ОткрытьФорму возвращает форму., в ней табличную часть документа и заполняешь. Читайте мат.часть., или синтакс помощник.
Форма = ОткрытьФорму()...
Либо 2 вариант, который лучше и быстрее отработает, Это: Форма = ПолучитьФорму(...настройки...параметры...), заполнение доп.данных в форме типа таблицы и др., и потом форма.открыть().
(4) как раз таки второй вариант отработает медленнее
хотя я сам на ОФ использую второй вариант, но в УФ только по первому, либо вариант отсюда https://infostart.ru/public/189390/ , в зависимости от задачи