Создание внешней печатной формы (ВПФ) для Универсального передаточного документа (УПД) с внедренной печатью и подписью — это востребованная задача, которая часто вызывает технические трудности. Проблемы варьируются от «грязного» фона картинки до того, что добавленные элементы просто не выводятся на принтер. В данной статье мы подробно разберем, как правильно подготовить графику, настроить макет в конфигурации и избежать типичных ошибок программирования.
Прежде чем приступать к технической реализации, проанализируем правовые аспекты. Это критически важно для УПД. Данный документ имеет двойственную природу, которая определяется его статусом:
Рекомендация: Всегда предупреждайте заказчика о возможных налоговых последствиях при использовании автоматической печати на УПД со статусом «1».
Одной из главных проблем является качество обрезки фона. Если фон не сделать идеально прозрачным, при наложении на текст документа печать будет перекрывать линии и буквы «белым квадратом». Проанализируем основные методы подготовки:
PNG-24 с поддержкой прозрачности. В отличие от GIF, этот формат обеспечивает плавные края (антиалиасинг) без эффекта «лесенки».Когда графика готова, ее нужно разместить в макете табличного документа. Разберем по шагам, как добиться правильного отображения:
В 1С объекты графики имеют свойство «Порядок» (Z-Order). Казалось бы, логично отправить печать «На задний план», чтобы текст был сверху. Однако на практике в 1С это часто работает некорректно: если у ячеек таблицы установлен белый фон (даже если он кажется прозрачным), он может полностью перекрыть картинку, находящуюся сзади.
Правильный подход: Располагаем картинку «На передний план», но само изображение подготавливаем с прозрачным фоном. В свойствах рисунка в макете обязательно проверьте флаг «Выводить на печать». Если он снят, в режиме просмотра вы будете видеть печать, а на бумаге — нет.
Если вы создаете внешнюю печатную форму, вывод изображений может осуществляться динамически. Рассмотрим пример кода, который позволяет управлять коллекцией Рисунки табличного документа:
// Пример добавления картинки в сформированный табличный документ
ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
Рисунок = ОбластьМакета.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок.Картинка = БиблиотекаКартинок.ПечатьОрганизации; // Или получение из справочника
Рисунок.Верх = 5;
Рисунок.Лево = 40;
Рисунок.Ширина = 35;
Рисунок.Высота = 35;
Рисунок.ГраницаСверху = Ложь;
Рисунок.ГраницаСлева = Ложь;
Рисунок.ГраницаСправа = Ложь;
Рисунок.ГраницаСнизу = Ложь;
Рисунок.ВыводитьНаПечать = Истина;
Рисунок.РазмерКартинки = РазмерКартинки.АвтоМасштаб;
Выясним причину, почему печать может не отображаться, даже если в макете она есть. Часто разработчики забывают, что в конфигурациях на базе 1С 8.2 и 8.3 (особенно в типовых, таких как БП 2.0) механизм печати может подменять макет внешней формы стандартным макетом из конфигурации, если в коде обработки допущена ошибка в функции Печать().
Проанализируем ситуацию, когда все настроено верно, но результат неудовлетворительный:
РазмерКартинки.Растянуть, печать может превратиться в овал. Всегда используйте АвтоМасштаб или РеальныйРазмер.Мы рассмотрели процесс создания УПД с факсимиле: от подготовки графики до программной реализации. Помните, что залогом успеха является качественный PNG файл и внимательная проверка свойств объекта Рисунок в макете 1С. Если вы столкнулись с тем, что изменения в макете не отражаются при печати — первым делом проверьте, тот ли макет вызывается в процедуре формирования документа. Как показала практика участников форума, часто причина кроется в банальной опечатке в программном коде, из-за которой система обращается к типовому макету вместо вашего модифицированного.