среда, 31 октября 2018 г.

Создание документа на основании другого документа (Толстый клиент, тонкий клиент)

Назначение: создание документа на основании другого документа.
Номенклатура объектов: документ «Корректировка долга» вводится на основании «Возврат товаров от покупателя».
Разработка на форме:
1.
 
2.Если использовать Конструктор ввода на основании, то процедура «обработка заполнения» будет замещена. Чтобы этого не произошло, изменения в процедуру «обработка заполнения» нужно добавить вручную.

3.


Процедура ОбработкаЗаполнения(Основание)
Если ТипЗнч(Основание) = Тип("ДокументСсылка.ВозвратТоваровОтПокупателя") Тогда
   Организация = Основание.Организация;
   КонтрагентДебитор = Основание.Контрагент;
   КонтрагентКредитор = Основание.Контрагент;
   ОснованиеОбъект = Основание.ПолучитьОбъект();
   ТЗ = ОснованиеОбъект.Товары;
   ТЗ.Свернуть("ДокументПартии,ИРВ_Проект","Сумма");
   Для Каждого Стр из ТЗ Цикл
      нСтр = СуммыДолга.Добавить();
 нСтр.ВидЗадолженности = Перечисления.ВидыЗадолженности.Дебиторская;
 нСтр.ДоговорКонтрагента = Основание.ДоговорКонтрагента;
 нСтр.Сделка = Основание.Сделка;
 нСтр.ДокументРасчетовСКонтрагентом = Стр.ДокументПартии;
 нСтр.Сумма = Стр.Сумма;
 нСтр.СуммаРегл = Стр.Сумма;
 нСтр.КурсВзаиморасчетов = 1;
 нСтр.ИРВ_Проект = Стр.ИРВ_Проект; 
 ИРВ_ЗаполнитьСчетаУчетаВСтроке(нСтр, Истина);//Добавил чтобы Заполнялись счета 
 Нстр2 = СуммыДолга.Добавить();
 Нстр2.ВидЗадолженности = Перечисления.ВидыЗадолженности.Кредиторская;
 Нстр2.ДоговорКонтрагента = Основание.ДоговорКонтрагента;
 Нстр2.Сделка = Основание.Сделка;
 Нстр2.ДокументРасчетовСКонтрагентом = Основание;
 Нстр2.Сумма = Стр.Сумма;
 Нстр2.СуммаРегл = Стр.Сумма;
 Нстр2.КурсВзаиморасчетов = 1;
 Нстр2.ИРВ_Проект = Стр.ИРВ_Проект; 
 ИРВ_ЗаполнитьСчетаУчетаВСтроке(Нстр2, Истина);//Добавил чтобы Заполнялись счета    
   КонецЦикла;
КонецЕсли;
 
КонецПроцедуры 



Пояснения:
Если требуется программно поймать момент, когда создается новый документ на основании (например, чтобы в этот момент вывести какое-нибудь сообщение), то этот момент отслеживается в процедуре «обработка заполнения» создаваемого на основании документа.

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