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