Пример простой внешней обработки "Печать упаковочного листа"

//Код модуля формы


&НаСервере
Процедура ПриОткрытииНаСервере()
    Объект.Дата = ТекущаяДата();
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    ПриОткрытииНаСервере();
КонецПроцедуры


&НаСервере
функция ПечатьНаСервере()
    
    Табдок = Новый ТабличныйДокумент;
    
    ОбъектВнешнейОбработки = РеквизитФормыВЗначение("Объект");
    Макет = ОбъектВнешнейОбработки.ПолучитьМакет("УпаковочныйЛист");
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьШапка.Параметры.Дата = Объект.Дата;
    Табдок.Вывести(ОбластьШапка);
    ОбластьСтрока = Макет.ПолучитьОБласть("Строка");
    
    Для каждого строка из Объект.Товары цикл
        ОбластьСтрока.параметры.Номенклатура = строка.Номенклатура.Наименование;
        ОбластьСтрока.параметры.Количество = строка.Количество;
        Табдок.Вывести(ОбластьСтрока);

    КонецЦикла;
    Возврат табдок;
    
КонецФункции

&НаКлиенте
Процедура Печать(Команда)
    
    Объект.Результат.Напечатать();
КонецПроцедуры

&НаКлиенте
Процедура ТоварыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
    
    Объект.Результат = ПечатьНаСервере();

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

&НаКлиенте
Процедура ТоварыПриИзменении(Элемент)
        Объект.Результат = ПечатьНаСервере();
КонецПроцедуры


//Код модуля объекта
&НаСервере
Процедура ПриОткрытииНаСервере()
    Объект.Дата = ТекущаяДата();
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    ПриОткрытииНаСервере();
КонецПроцедуры


&НаСервере
функция ПечатьНаСервере()
   
    Табдок = Новый ТабличныйДокумент;
   
    ОбъектВнешнейОбработки = РеквизитФормыВЗначение("Объект");
    Макет = ОбъектВнешнейОбработки.ПолучитьМакет("УпаковочныйЛист");
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьШапка.Параметры.Дата = Объект.Дата;
    Табдок.Вывести(ОбластьШапка);
    ОбластьСтрока = Макет.ПолучитьОБласть("Строка");
   
    Для каждого строка из Объект.Товары цикл
        ОбластьСтрока.параметры.Номенклатура = строка.Номенклатура.Наименование;
        ОбластьСтрока.параметры.Количество = строка.Количество;
        Табдок.Вывести(ОбластьСтрока);

    КонецЦикла;
    Возврат табдок;
   
КонецФункции

&НаКлиенте
Процедура Печать(Команда)
   
    Объект.Результат.Напечатать();
КонецПроцедуры

&НаКлиенте
Процедура ТоварыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
   
    Объект.Результат = ПечатьНаСервере();

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

&НаКлиенте
Процедура ТоварыПриИзменении(Элемент)
        Объект.Результат = ПечатьНаСервере();
КонецПроцедуры
Скачать