Документы и Печать · 9 мин
Как добавить подпись и печать во внешнюю печатную форму 1С
Пошаговая инструкция: как вставить изображения подписи и печати во внешнюю печатную форму 1С через макет и код. Требования к картинкам, код, ошибки.
Факсимильная подпись и печать на печатных формах избавляют сотрудников от ручного подписания десятков документов: счетов, актов, ТОРГ-12, доверенностей. Во внешней печатной форме 1С это реализуется двумя способами: вставкой картинки прямо в макет табличного документа или программным выводом изображения из файла или хранилища. Ниже разобраны оба подхода с готовым кодом.
Прежде чем приступать, уточните юридическую сторону: факсимиле допустимо на внутренних документах и там, где это согласовано с контрагентом договором. Для документов, где закон требует собственноручную подпись или квалифицированную электронную подпись (например, УПД при электронном документообороте), факсимиле заменой не является.
Подготовка изображений подписи и печати
Качество итогового документа почти полностью определяется исходными картинками. Отсканируйте подпись и оттиск печати на чистом белом листе с разрешением не менее 300 dpi. Затем в любом графическом редакторе удалите фон и сохраните результат в формате PNG с прозрачностью — только так подпись будет ложиться поверх текста и линий таблицы без белого прямоугольника вокруг.
Обратите внимание на пропорции. Печать организации обычно круглая, около 40 мм в диаметре, подпись — вытянутая, примерно 40×15 мм. В макете 1С картинку можно масштабировать, но сильное уменьшение крупного файла ухудшает чёткость, а растягивание маленькой даёт размытие. Оптимально подготовить изображение примерно в том размере, в котором оно будет выводиться.
Способ 1: вставка картинки прямо в макет
Самый простой вариант — встроить изображения в макет табличного документа внутри внешней обработки. Откройте внешнюю печатную форму в конфигураторе, перейдите в макет (обычно он называется «Макет» или «ПФ_MXL_...»), установите курсор в нужную ячейку и выполните: Таблица → Рисунки → Картинка. Выберите файл PNG, и изображение станет объектом макета.
В свойствах рисунка задайте размер и при необходимости включите пропорциональное масштабирование. Чтобы печать частично перекрывала подпись (как на реальном документе), разместите оба рисунка в одной области и управляйте их положением координатами — рисунки в табличном документе могут накладываться друг на друга.
Плюс способа — никакого кода: картинка всегда на месте при выводе области. Минус — изображение жёстко зашито в макет. Если подписант сменился, придётся редактировать обработку и переподключать её в базе. Кроме того, одна и та же форма не сможет подставлять разные подписи для разных организаций.
Способ 2: программный вывод картинки из макета или файла
Более гибкий вариант — хранить изображения как картинки в макете типа «Картинка» или загружать их из файла/хранилища значений, а при формировании документа подставлять в именованный рисунок области. Для этого в макете создайте пустой рисунок с понятным именем, например «ПодписьРуководителя», и в коде модуля обработки присвойте ему объект Картинка.
Процедура ВывестиПодписьИПечать(ТабДокумент, ОбластьПодвал)
// Картинки хранятся в макете обработки как объекты «Картинка»
МакетКартинок = ЭтотОбъект.ПолучитьМакет("ПодписиИПечати");
РисунокПодпись = ОбластьПодвал.Рисунки.Найти("ПодписьРуководителя");
Если РисунокПодпись <> Неопределено Тогда
РисунокПодпись.Картинка = МакетКартинок.Рисунки.Подпись.Картинка;
КонецЕсли;
РисунокПечать = ОбластьПодвал.Рисунки.Найти("ПечатьОрганизации");
Если РисунокПечать <> Неопределено Тогда
РисунокПечать.Картинка = МакетКартинок.Рисунки.Печать.Картинка;
КонецЕсли;
ТабДокумент.Вывести(ОбластьПодвал);
КонецПроцедурыЕсли изображения должны меняться без правки обработки, храните их в базе: в дополнительных реквизитах организации, в справочнике файлов или в константе типа «Хранилище значения». Тогда код загружает картинку из хранилища: Новый Картинка(ХранилищеКартинки.Получить()). Это позволяет администратору заменить подпись прямо в пользовательском режиме.
Подключение внешней печатной формы и проверка
После доработки макета и кода подключите обработку: Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки → Добавить из файла. Убедитесь, что в модуле обработки корректно заполнена функция СведенияОВнешнейОбработке — без неё форма не зарегистрируется и не появится в списке печати.
- 1Отсканируйте подпись и печать, удалите фон, сохраните в PNG
- 2Откройте внешнюю обработку в конфигураторе и перейдите в макет
- 3Вставьте картинки в макет или создайте именованные рисунки для программной подстановки
- 4Допишите код вывода области с подписью и печатью в функции Печать()
- 5Сохраните обработку и подключите её через «Дополнительные отчеты и обработки»
- 6Сформируйте документ и проверьте положение и чёткость изображений в предпросмотре и на бумаге
Проверяйте результат не только на экране, но и на печати: некоторые принтеры искажают полутона, и светло-синяя подпись может стать почти невидимой. При необходимости увеличьте контраст изображения. Также проверьте выгрузку в PDF, если документ отправляется контрагентам электронно.
Как проверить результат
Прозрачный, видны линии таблицы под изображением
Белый прямоугольник перекрывает текст и границы ячеек
Частично заходит на подпись и текст, не закрывает суммы
Печать перекрывает ключевые данные или «уезжает» за поля страницы
Штрихи подписи читаемы после печати
Изображение размыто или слишком бледное
Частые ошибки и ограничения
Типичная проблема — рисунок не выводится, потому что имя в коде не совпадает с именем рисунка в макете (регистр и пробелы учитываются). Вторая частая ошибка — попытка взять картинку из файла на локальном диске разработчика: на сервере или у другого пользователя этого пути нет, и печать падает с ошибкой. Храните изображения в макете или в базе.
Учтите ограничение безопасности: файл обработки с зашитой подписью директора — это, по сути, готовое факсимиле. Ограничьте доступ к внешней печатной форме правами, иначе любой пользователь сможет выводить «подписанные» документы.
Альтернативные варианты
Если правка внешней обработки недоступна (нет конфигуратора или навыков), рассмотрите альтернативы. В типовых конфигурациях на БСП часть форм поддерживает подстановку факсимиле штатно — например, в настройках организации или ответственных лиц есть реквизиты для файла подписи и печати. Проверьте карточку организации и настройки печати документов до того, как писать код.
Сравнение вариантов
Быстро и без кода, но замена подписи требует правки обработки; подходит для одной стабильной подписи
Гибкое позиционирование и условия вывода; нужен минимальный код и аккуратные имена рисунков
Замена подписи пользователем без конфигуратора; требует доработки хранения и интерфейса загрузки
Без разработки, но доступно не во всех формах и конфигурациях
Ещё один путь — редактирование макета прямо в пользовательском режиме, если конфигурация разрешает изменение макетов печатных форм (команда «Изменить макет» в форме печати). Туда тоже можно вставить картинку, но такой макет хранится в данных и может быть сброшен при обновлении.
Что важно запомнить
Подготовьте PNG с прозрачным фоном, вставьте изображения в макет или выводите их программно через именованные рисунки, храните картинки в обработке или базе, а не на диске. Проверяйте результат на печати и помните о юридических ограничениях факсимиле.
Частые вопросы
Можно ли добавить подпись и печать без конфигуратора?
Да, если конфигурация поддерживает редактирование макета печатной формы в пользовательском режиме (кнопка «Изменить макет» в окне печати) или штатное факсимиле в настройках организации. Возможности зависят от конкретной конфигурации и её версии.
Почему подпись выводится с белым фоном и закрывает текст?
Изображение сохранено в JPG или PNG без прозрачности. Откройте картинку в редакторе, удалите фон инструментом «волшебная палочка» или выделением по цвету и пересохраните в PNG с альфа-каналом.
Как сделать, чтобы печать частично перекрывала подпись?
Разместите оба рисунка в одной области макета поверх друг друга, задав им координаты и размеры в свойствах. Рисунки табличного документа поддерживают наложение; порядок вывода определяет, какой окажется сверху.
Форма работает у меня, но у коллег подпись не выводится. В чём причина?
Чаще всего картинка загружается из файла по локальному пути, которого нет на других компьютерах. Перенесите изображение в макет обработки или в хранилище значений в базе — тогда оно будет доступно всем пользователям.
Законно ли ставить факсимиле на счета и акты?
На внутренние документы и при наличии условия в договоре с контрагентом — как правило, допустимо. Для документов, где закон прямо требует подпись (отдельные налоговые, кадровые формы, ЭДО с УПД), факсимиле не подходит. Решение по каждому типу документа согласуйте с юристом.
Картинка сильно увеличила размер обработки. Это проблема?
Файл весом в несколько мегабайт замедляет подключение и формирование печати. Сожмите изображение до реального размера вывода (обычно достаточно ширины 300–600 пикселей) и уменьшите глубину цвета — подпись не требует фотографического качества.