Как встроить печать с подписью и прозрачным фоном в печатную форму 1С:Управление торговлей 10.3

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

При автоматизации документооборота в 1С:Управление торговлей 10.3 часто возникает задача вывода факсимиле (печати организации и подписей ответственных лиц) непосредственно в печатную форму документа, например, в счет на оплату или коммерческое предложение. Основная техническая сложность, с которой сталкиваются разработчики, заключается в том, что стандартная картинка с белым фоном перекрывает текст документа, линии таблиц и другие элементы макета, делая печатную форму неопрятной или вовсе нечитаемой. При необходимости можно использовать готовую внешнюю печатную форму счета на оплату с факсимиле и логотипом для УТ 10.3.

В этой статье мы подробно разберем, как добиться эффекта «прозрачной» печати, правильно подготовить графические файлы и настроить свойства объектов в табличном документе 1С.

Шаг 1. Правильная подготовка изображения

Проанализируем ситуацию: почему обычный файл формата JPEG не подходит? Данный формат не поддерживает прозрачность, поэтому любая попытка наложить его поверх текста приведет к появлению белого прямоугольника. Для решения нашей задачи необходимо использовать формат PNG с поддержкой альфа-канала.

Разберем процесс подготовки в графическом редакторе (например, Adobe Photoshop):

  1. Отсканируйте печать и подпись. Желательно делать это с высоким разрешением (300-600 dpi), чтобы после обработки края не выглядели «зубчатыми».
  2. Используйте инструменты выделения, чтобы удалить белый фон.
  3. Важный нюанс: при сохранении выбирайте режим PNG-24. В отличие от PNG-8, этот режим поддерживает полупрозрачность пикселей. Это позволит сделать края печати мягкими (применить небольшое размытие в 1–2 пикселя), благодаря чему наложение на линии документа будет выглядеть естественно.
  4. Убедитесь, что размер холста ненамного больше самого изображения печати, чтобы в 1С было удобнее позиционировать объект.

Шаг 2. Настройка свойств графического объекта в макете 1С

После того как мы подготовили файл, переходим в конфигуратор 1С и открываем макет нужной печатной формы. Рассмотрим, как правильно вставить и настроить картинку:

Выполним следующие действия в редакторе макета:

  1. Меню «Таблица» — «Рисунки» — «Вставить картинку». Выбираем наш подготовленный PNG-файл.
  2. Нажмем правой кнопкой мыши на вставленный рисунок и выберем пункт «Свойства».
  3. Проанализируем вкладку «Оформление». Для того чтобы прозрачность PNG корректно интерпретировалась платформой, параметр «Цвет фона» должен быть установлен в значение Нет цвета или Авто.
  4. Параметр «Узор» также должен быть установлен в положение Прозрачный. Если здесь будет выбран сплошной цвет, прозрачность самого файла может быть проигнорирована платформой.
  5. В поле «Тип вывода» убедитесь, что флаг Выводить на печать активен.

Шаг 3. Управление порядком наслоения (Z-order)

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

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

Вариант 2: Размещение на переднем плане. Это более надежный способ для отображения печати поверх линий сетки. Благодаря прозрачности PNG, текст под печатью останется видимым, создавая эффект реального оттиска на бумаге.

Шаг 4. Программное управление видимостью печати

Зачастую печать должна выводиться не всегда, а только при определенных условиях. Посмотрим на пример того, как управлять выводом картинки из кода модуля печатной формы. Сначала в макете нужно задать имя объекту (например, ПечатьОрганизации).

Рассмотрим пример кода для управления выводом:


// Получаем область макета, где находится рисунок
ОбластьМакета = Макет.ПолучитьОбласть("Подвал");

// Проверяем условие, нужно ли выводить факсимиле
Если НужноВыводитьПечать Тогда
    // Обращаемся к коллекции рисунков области
    РисунокПечать = ОбластьМакета.Рисунки.ПечатьОрганизации;
    РисунокПечать.Видимость = Истина;
Иначе
    ОбластьМакета.Рисунки.ПечатьОрганизации.Видимость = Ложь;
КонецЕсли;

ТабДок.Вывести(ОбластьМакета);

Проанализируем этот подход: использование свойства Видимость позволяет гибко настраивать печатную форму под требования бизнеса, не создавая несколько разных макетов.

Шаг 5. Решение технических проблем при печати

Рассмотрим распространенную проблему: на экране всё выглядит отлично, но при выводе на принтер или сохранении в PDF вместо прозрачного фона появляется черный квадрат. Выясним, почему это происходит и как это исправить:

Шаг 6. Оптимизация и хранение

Разберем важный аспект производительности. Встраивание тяжелых оригиналов сканов (по 5-10 Мб) в макет приведет к тому, что база данных начнет стремительно расти, а формирование счетов станет медленным.

Рекомендуем придерживаться следующих правил:

  1. Сжимайте изображения до разрешения 150-200 dpi. Для печати на обычном офисном принтере этого более чем достаточно.
  2. Не храните картинки в самом макете .mxl, если у вас много организаций. Лучше создайте в справочнике Организации реквизит с типом ХранилищеЗначения и подгружайте картинку в рисунок макета программно перед выводом.

Проанализируем способ программной подстановки картинки:


// Пример подстановки картинки из справочника
КартинкаИзБазы = Справочники.Организации.НайтиПоНаименованию("Наша Фирма").Печать.Получить();
Если ТипЗнч(КартинкаИзБазы) = Тип("Картинка") Тогда
    ОбластьМакета.Рисунки.ПечатьОрганизации.Картинка = КартинкаИзБазы;
КонецЕсли;

Используя этот метод, вы сможете менять печати и подписи прямо в пользовательском режиме, не прибегая к услугам программиста для правки макетов в конфигураторе.

Юридическое предостережение

Важно помнить: использование факсимиле в 1С допустимо далеко не для всех документов. Согласно законодательству, факсимиле можно использовать в счетах на оплату и коммерческих предложениях. Однако в таких документах, как счета-фактуры, товарные накладные (ТОРГ-12) и кассовые ордера, использование «картинок» вместо живой подписи может привести к налоговым рискам, если это прямо не предусмотрено соглашением сторон. Для юридически значимого документооборота рекомендуется использовать механизмы ЭДО и квалифицированную электронную подпись.

← На главную