среда, 10 мая 2017 г.

Создание и заполнение формы документа без сохранения

Рассмотрим задачу на примере копирования документа "Счет на оплату", нужно чтобы копирование документа происходило не по типовым алгоритмам. (А именно при копировании счета содержание номенклатуры заполняется заново и состоит из наименования номенклатуры + дата, за это отвечает следующая функция

)



Решение задачи:




Чтобы заполнить табличную часть управляемой формы (ДанныеФормыКоллекция) произвольными данными  нужно использовать функцию:

ЗначениеВДанныеФормы() 


Листинг решения


&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
 
Форма = ПолучитьФорму("Документ.СчетНаОплатуПокупателю.Форма.ФормаДокумента"); //Получим форму на клиенте
ДанныеФормы = Форма.Объект;
ЗаполнитьНаСервере(ДанныеФормы,ПараметрКоманды); //Заполняем данные на сервере
КопироватьДанныеФормы(ДанныеФормы, Форма.Объект);
Форма.Открыть();

КонецПроцедуры

&НаСервере
Процедура ЗаполнитьНаСервере(НовыйОбъект,Ссылка)

ЗаполнитьЗначенияСвойств(НовыйОбъект,Ссылка,,"Товары, ВозвратнаяТара, Номер"); 
//Заполняем реквизиты создавайемой формы исключая ДанныеФормыКоллекция

НовыйОбъект.Дата = ТекущаяДата();
ЗначениеВДанныеФормы(Ссылка.Товары,НовыйОбъект.Товары); //Заполняем ДанныеФормыКоллекция

КонецПроцедуры

Комментариев нет:

Отправить комментарий