Несколько печатных форм в УФ

Клиенту нужно было сделать еще одну печатную форму, где каждая марка печаталась бы с новой строки. Вроде бы простая задача, я оценил ее недорого. Но когда начал делать, подумал, что не хочу делать копию печатной формы, всё же это не красиво. Что обо мне подумают те, кто придут после меня.

Захотел сделать две печатные формы из одной. Но это оказалось не так просто, даже после того, как погуглил. Делюсь опытом.

При добавлении команд нужно давать разное название макетов (3-й параметр):

    ДобавитьКоманду(ТаблицаКоманд, «Печать этикеток с кодами маркировки», «Макет», «ВызовСерверногоМетода», Истина, «ПечатьMXL»);
   
ДобавитьКоманду(ТаблицаКоманд, «Печать этикеток с кодами маркировки (на отдельных страницах)», «МакетПостраничный», «ВызовСерверногоМетода», Истина, «ПечатьMXL»);

У пользователя, соответственно будут добавлены две печатные формы.

В процедуре печати имя макета определяется так:

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    Для Каждого
СтрокаТЧ из КоллекцияПечатныхФорм Цикл
       
ИмяМакета = СтрокаТЧ.ИмяВРЕГ;
    КонецЦикла;

   
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, ИмяМакета, «Печать этикеток с кодами маркировки » + Формат(ТекущаяДата(),«ДФ=dd.MM.yyyy»), СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати, ИмяМакета));
КонецПроцедуры

В процедуре формирования печатной формы определить, какая печатная форма формируется можно по имени макета:

Функция СформироватьПечатнуюФорму(СсылкаНаДокумент, ОбъектыПечати, ИмяМакета)
    ….
   
Постранично = ИмяМакета = «МАКЕТПОСТРАНИЧНЫЙ»;
    …
КонецФункции

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *