Как добавить печать и подпись в печатную форму УПД в 1С?

Программист 1С v8.3 (Обычные формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

Создание внешней печатной формы (ВПФ) для Универсального передаточного документа (УПД) с внедренной печатью и подписью — это востребованная задача, которая часто вызывает технические трудности. Проблемы варьируются от «грязного» фона картинки до того, что добавленные элементы просто не выводятся на принтер. В данной статье мы подробно разберем, как правильно подготовить графику, настроить макет в конфигурации и избежать типичных ошибок программирования.

Юридические риски: когда можно и нельзя использовать факсимиле

Прежде чем приступать к технической реализации, проанализируем правовые аспекты. Это критически важно для УПД. Данный документ имеет двойственную природу, которая определяется его статусом:

Рекомендация: Всегда предупреждайте заказчика о возможных налоговых последствиях при использовании автоматической печати на УПД со статусом «1».

Подготовка графических изображений (печать и подписи)

Одной из главных проблем является качество обрезки фона. Если фон не сделать идеально прозрачным, при наложении на текст документа печать будет перекрывать линии и буквы «белым квадратом». Проанализируем основные методы подготовки:

  1. Использование формата PNG с альфа-каналом: Это наиболее правильный технический путь. Необходимо сохранить изображение в формате PNG-24 с поддержкой прозрачности. В отличие от GIF, этот формат обеспечивает плавные края (антиалиасинг) без эффекта «лесенки».
  2. Векторизация и экспорт: Если есть возможность, запросите исходник печати у изготовителя в векторе (CorelDraw или Adobe Illustrator). Из векторного редактора можно экспортировать изображение с прозрачным фоном в идеальном качестве.
  3. Метод «цельного подвала»: Рассмотрим интересный лайфхак. Вместо того чтобы мучиться с обрезкой каждой закорючки подписи, можно распечатать пустой подвал документа (блок с подписями), поставить на нем реальную печать и живые подписи, а затем отсканировать этот блок целиком как одну большую картинку. Эту картинку мы просто подставим в макет 1С вместо текстового блока. Это гарантирует отсутствие «наездов» элементов друг на друга.

Настройка макета в 1С и свойство Z-Order

Когда графика готова, ее нужно разместить в макете табличного документа. Разберем по шагам, как добиться правильного отображения:

В 1С объекты графики имеют свойство «Порядок» (Z-Order). Казалось бы, логично отправить печать «На задний план», чтобы текст был сверху. Однако на практике в 1С это часто работает некорректно: если у ячеек таблицы установлен белый фон (даже если он кажется прозрачным), он может полностью перекрыть картинку, находящуюся сзади.

Правильный подход: Располагаем картинку «На передний план», но само изображение подготавливаем с прозрачным фоном. В свойствах рисунка в макете обязательно проверьте флаг «Выводить на печать». Если он снят, в режиме просмотра вы будете видеть печать, а на бумаге — нет.

Программный вывод печати в кодe

Если вы создаете внешнюю печатную форму, вывод изображений может осуществляться динамически. Рассмотрим пример кода, который позволяет управлять коллекцией Рисунки табличного документа:


// Пример добавления картинки в сформированный табличный документ
ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
Рисунок = ОбластьМакета.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок.Картинка = БиблиотекаКартинок.ПечатьОрганизации; // Или получение из справочника
Рисунок.Верх = 5; 
Рисунок.Лево = 40;
Рисунок.Ширина = 35;
Рисунок.Высота = 35;
Рисунок.ГраницаСверху = Ложь;
Рисунок.ГраницаСлева = Ложь;
Рисунок.ГраницаСправа = Ложь;
Рисунок.ГраницаСнизу = Ложь;
Рисунок.ВыводитьНаПечать = Истина;
Рисунок.РазмерКартинки = РазмерКартинки.АвтоМасштаб;

Выясним причину, почему печать может не отображаться, даже если в макете она есть. Часто разработчики забывают, что в конфигурациях на базе 1С 8.2 и 8.3 (особенно в типовых, таких как БП 2.0) механизм печати может подменять макет внешней формы стандартным макетом из конфигурации, если в коде обработки допущена ошибка в функции Печать().

Типичные ошибки и их решение

Проанализируем ситуацию, когда все настроено верно, но результат неудовлетворительный:

Заключение

Мы рассмотрели процесс создания УПД с факсимиле: от подготовки графики до программной реализации. Помните, что залогом успеха является качественный PNG файл и внимательная проверка свойств объекта Рисунок в макете 1С. Если вы столкнулись с тем, что изменения в макете не отражаются при печати — первым делом проверьте, тот ли макет вызывается в процедуре формирования документа. Как показала практика участников форума, часто причина кроется в банальной опечатке в программном коде, из-за которой система обращается к типовому макету вместо вашего модифицированного.

← На главную