К статье
Практический материал

Документы и Печать · 9 мин

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

Пошаговая инструкция: как вставить изображения подписи и печати во внешнюю печатную форму 1С через макет и код. Требования к картинкам, код, ошибки.

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

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

Подготовка изображений подписи и печати

Качество итогового документа почти полностью определяется исходными картинками. Отсканируйте подпись и оттиск печати на чистом белом листе с разрешением не менее 300 dpi. Затем в любом графическом редакторе удалите фон и сохраните результат в формате PNG с прозрачностью — только так подпись будет ложиться поверх текста и линий таблицы без белого прямоугольника вокруг.

Обратите внимание на пропорции. Печать организации обычно круглая, около 40 мм в диаметре, подпись — вытянутая, примерно 40×15 мм. В макете 1С картинку можно масштабировать, но сильное уменьшение крупного файла ухудшает чёткость, а растягивание маленькой даёт размытие. Оптимально подготовить изображение примерно в том размере, в котором оно будет выводиться.

Способ 1: вставка картинки прямо в макет

Самый простой вариант — встроить изображения в макет табличного документа внутри внешней обработки. Откройте внешнюю печатную форму в конфигураторе, перейдите в макет (обычно он называется «Макет» или «ПФ_MXL_...»), установите курсор в нужную ячейку и выполните: Таблица → Рисунки → Картинка. Выберите файл PNG, и изображение станет объектом макета.

В свойствах рисунка задайте размер и при необходимости включите пропорциональное масштабирование. Чтобы печать частично перекрывала подпись (как на реальном документе), разместите оба рисунка в одной области и управляйте их положением координатами — рисунки в табличном документе могут накладываться друг на друга.

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

Способ 2: программный вывод картинки из макета или файла

Более гибкий вариант — хранить изображения как картинки в макете типа «Картинка» или загружать их из файла/хранилища значений, а при формировании документа подставлять в именованный рисунок области. Для этого в макете создайте пустой рисунок с понятным именем, например «ПодписьРуководителя», и в коде модуля обработки присвойте ему объект Картинка.

bsl
Процедура ВывестиПодписьИПечать(ТабДокумент, ОбластьПодвал)
    // Картинки хранятся в макете обработки как объекты «Картинка»
    МакетКартинок = ЭтотОбъект.ПолучитьМакет("ПодписиИПечати");
    
    РисунокПодпись = ОбластьПодвал.Рисунки.Найти("ПодписьРуководителя");
    Если РисунокПодпись <> Неопределено Тогда
        РисунокПодпись.Картинка = МакетКартинок.Рисунки.Подпись.Картинка;
    КонецЕсли;
    
    РисунокПечать = ОбластьПодвал.Рисунки.Найти("ПечатьОрганизации");
    Если РисунокПечать <> Неопределено Тогда
        РисунокПечать.Картинка = МакетКартинок.Рисунки.Печать.Картинка;
    КонецЕсли;
    
    ТабДокумент.Вывести(ОбластьПодвал);
КонецПроцедуры

Если изображения должны меняться без правки обработки, храните их в базе: в дополнительных реквизитах организации, в справочнике файлов или в константе типа «Хранилище значения». Тогда код загружает картинку из хранилища: Новый Картинка(ХранилищеКартинки.Получить()). Это позволяет администратору заменить подпись прямо в пользовательском режиме.

Подключение внешней печатной формы и проверка

После доработки макета и кода подключите обработку: Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки → Добавить из файла. Убедитесь, что в модуле обработки корректно заполнена функция СведенияОВнешнейОбработке — без неё форма не зарегистрируется и не появится в списке печати.

Порядок действий
  1. 1
    Отсканируйте подпись и печать, удалите фон, сохраните в PNG
  2. 2
    Откройте внешнюю обработку в конфигураторе и перейдите в макет
  3. 3
    Вставьте картинки в макет или создайте именованные рисунки для программной подстановки
  4. 4
    Допишите код вывода области с подписью и печатью в функции Печать()
  5. 5
    Сохраните обработку и подключите её через «Дополнительные отчеты и обработки»
  6. 6
    Сформируйте документ и проверьте положение и чёткость изображений в предпросмотре и на бумаге

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

Контрольные точки

Как проверить результат

Фон вокруг подписи
Норма

Прозрачный, видны линии таблицы под изображением

Тревожный признак

Белый прямоугольник перекрывает текст и границы ячеек

Положение печати
Норма

Частично заходит на подпись и текст, не закрывает суммы

Тревожный признак

Печать перекрывает ключевые данные или «уезжает» за поля страницы

Чёткость на бумаге
Норма

Штрихи подписи читаемы после печати

Тревожный признак

Изображение размыто или слишком бледное

Частые ошибки и ограничения

Типичная проблема — рисунок не выводится, потому что имя в коде не совпадает с именем рисунка в макете (регистр и пробелы учитываются). Вторая частая ошибка — попытка взять картинку из файла на локальном диске разработчика: на сервере или у другого пользователя этого пути нет, и печать падает с ошибкой. Храните изображения в макете или в базе.

Типичные ошибки
01
Картинка в JPG вместо PNG — белый фон закрывает линии и текст документа
02
Путь к файлу на локальном диске — у других пользователей форма выдаёт ошибку или пустое место
03
Рисунок размещён в области, которая выводится до заполнения параметров — подпись накладывается не туда
04
Слишком большой файл изображения раздувает размер обработки и замедляет формирование
05
Факсимиле на документах, где требуется живая подпись, — риск непринятия документа контрагентом или проверяющими

Учтите ограничение безопасности: файл обработки с зашитой подписью директора — это, по сути, готовое факсимиле. Ограничьте доступ к внешней печатной форме правами, иначе любой пользователь сможет выводить «подписанные» документы.

Альтернативные варианты

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

Сравнение вариантов

Картинка в макете обработки

Быстро и без кода, но замена подписи требует правки обработки; подходит для одной стабильной подписи

Программная подстановка из макета

Гибкое позиционирование и условия вывода; нужен минимальный код и аккуратные имена рисунков

Хранение картинки в базе

Замена подписи пользователем без конфигуратора; требует доработки хранения и интерфейса загрузки

Штатное факсимиле типовой конфигурации

Без разработки, но доступно не во всех формах и конфигурациях

Ещё один путь — редактирование макета прямо в пользовательском режиме, если конфигурация разрешает изменение макетов печатных форм (команда «Изменить макет» в форме печати). Туда тоже можно вставить картинку, но такой макет хранится в данных и может быть сброшен при обновлении.

Итог

Что важно запомнить

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

Частые вопросы

Можно ли добавить подпись и печать без конфигуратора?

Да, если конфигурация поддерживает редактирование макета печатной формы в пользовательском режиме (кнопка «Изменить макет» в окне печати) или штатное факсимиле в настройках организации. Возможности зависят от конкретной конфигурации и её версии.

Почему подпись выводится с белым фоном и закрывает текст?

Изображение сохранено в JPG или PNG без прозрачности. Откройте картинку в редакторе, удалите фон инструментом «волшебная палочка» или выделением по цвету и пересохраните в PNG с альфа-каналом.

Как сделать, чтобы печать частично перекрывала подпись?

Разместите оба рисунка в одной области макета поверх друг друга, задав им координаты и размеры в свойствах. Рисунки табличного документа поддерживают наложение; порядок вывода определяет, какой окажется сверху.

Форма работает у меня, но у коллег подпись не выводится. В чём причина?

Чаще всего картинка загружается из файла по локальному пути, которого нет на других компьютерах. Перенесите изображение в макет обработки или в хранилище значений в базе — тогда оно будет доступно всем пользователям.

Законно ли ставить факсимиле на счета и акты?

На внутренние документы и при наличии условия в договоре с контрагентом — как правило, допустимо. Для документов, где закон прямо требует подпись (отдельные налоговые, кадровые формы, ЭДО с УПД), факсимиле не подходит. Решение по каждому типу документа согласуйте с юристом.

Картинка сильно увеличила размер обработки. Это проблема?

Файл весом в несколько мегабайт замедляет подключение и формирование печати. Сожмите изображение до реального размера вывода (обычно достаточно ширины 300–600 пикселей) и уменьшите глубину цвета — подпись не требует фотографического качества.