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