При разработке внешних печатных форм (ВПФ) для конфигурации «1С:Бухгалтерия предприятия 3.0» разработчики часто сталкиваются с тем, что в стандартном окне предварительного просмотра отсутствует привычная галочка «Подпись и печать». В типовых документах эта опция позволяет мгновенно наложить факсимиле организации на сформированный документ, но во внешних формах этот механизм не включается автоматически. В данной статье мы подробно разберем, какие процедуры необходимо вызвать в модуле обработки, чтобы активировать этот функционал и корректно вывести изображения подписей и печатей.
Рассмотрим причину возникновения проблемы. Флаг управления факсимиле в форме печати — это динамический элемент. Платформа анализирует структуру ПараметрыВывода, которую возвращает процедура Печать внешней обработки. Если в этой структуре не установлен признак доступности функционала, кнопка просто не будет отрисована. Выясним, как управлять этим поведением программно.
Для того чтобы система «поняла», что ваша внешняя форма поддерживает наложение картинок, необходимо в структуре ПараметрыВывода установить свойство ДоступнаПечатьСПодписьюИПечатью в значение Истина. Однако делать это вручную не рекомендуется, так как в типовых решениях существует специальный метод, который выполняет всю подготовительную работу.
Проанализируем ключевое решение, которое помогает активировать интерфейсные элементы. Самым важным этапом является вызов процедуры ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати. Именно она отвечает за анализ объектов печати и установку соответствующих флагов в параметрах вывода.
Посмотрим на пример реализации стандартной процедуры Печать в модуле внешней обработки:
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
// Подготовим структуру для параметров печати
ПараметрыПечати = Новый Структура;
// Формируем табличный документ (ваш основной код формирования макета)
ТабДокумент = СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати);
// Выводим результат в коллекцию
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"КодВашейФормы",
"Наименование формы",
ТабДокумент);
// Критически важная строка для появления галочки "Подпись и печать"
ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(
МассивОбъектов,
КоллекцияПечатныхФорм,
ОбъектыПечати,
ПараметрыВывода);
КонецПроцедуры
Без вызова метода ЗаполнитьДополнительныеПараметрыПечати система не инициализирует механизмы БСП, отвечающие за работу с факсимиле для внешних объектов.
Разберем ситуацию, когда галочка появилась, но при ее нажатии ничего не происходит. Это означает, что нам нужно самостоятельно описать логику «внедрения» картинок в табличный документ. В разных версиях БСП и «1С:Бухгалтерии» использовались разные подходы. Рассмотрим наиболее актуальный на текущий момент способ.
Для современных релизов (начиная с 3.0.115 и выше) рекомендуется использовать метод УправлениеПечатьюБП.ДоработатьФаксимильнуюПодписьИПечать. Проанализируем по шагам, как это встроить в цикл формирования документов:
УправлениеПечатью.ЗадатьОбластьПечатиДокумента.Пример расширенного кода для формирования печатной формы с поддержкой факсимиле:
Для Каждого СсылкаНаДокумент Из МассивОбъектов Цикл
НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
// Ваша функция, которая заполняет ТабДокумент данными из макета
ЗаполнитьДанныеДокумента(ТабДокумент, СсылкаНаДокумент);
// Фиксируем область для корректного позиционирования картинок
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(
ТабДокумент,
НомерСтрокиНачало,
ОбъектыПечати,
СсылкаНаДокумент);
// Накладываем подписи и печати (если выбрана соответствующая опция)
// В новых версиях метод может называться:
УправлениеПечатьюБП.ДополнитьДокументПодписьюИПечатью(
ТабДокумент,
СсылкаНаДокумент,
ОбъектыПечати,
ПараметрыВывода);
КонецЦикла;
Рассмотрим важный нюанс: даже при правильном коде картинки могут не отобразиться, если макет внешней формы не подготовлен. Механизмы 1С ищут в табличном документе области с конкретными именами, чтобы понять, куда именно «приклеить» изображение печати или подписи руководителя.
Проанализируем требования к именованию областей в макете:
Подвал, Подписи или ПодвалЗаказчика.ДоработатьФаксимильнуюПодписьИПечать не сможет определить координаты для вставки объектов РисунокТабличногоДокумента.Выясним, какие изменения произошли в API в последних обновлениях. Ранее часто использовался метод УправлениеПечатьюБП.ДобавитьФаксимилеВФоне. Однако в современных версиях конфигурации он помечен как устаревший. Если вы поддерживаете старый код, рекомендуется выполнить замену на:
УправлениеПечатьюБП.ПодготовитьОбъектыДляПечатиСПодписьюИПечатью — для предварительного сбора данных о картинках из справочников (организации, физические лица).УправлениеПечатьюБП.ПриПолученииПодписейИПечатей — для обработки данных в фоновом режиме.Это обеспечит более стабильную работу ВПФ, особенно в облачных сервисах (1С:Фреш) и при пакетной печати большого количества документов.
Посмотрим на ситуацию, когда на экране подписи видны, а при сохранении в PDF они исчезают. Это происходит из-за того, что свойство рисунка ВыводитьНаПечать может быть не установлено в значение Истина при динамическом добавлении. При использовании типовых методов БСП, таких как ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати, эта проблема обычно решается автоматически, так как система правильно конфигурирует объекты Картинка внутри табличного документа.
Резюмируем: для успешной реализации «Подписи и печати» во внешней форме необходимо сочетать три фактора: правильный вызов ЗаполнитьДополнительныеПараметрыПечати в конце процедуры Печать, использование актуальных методов наложения рисунков в цикле формирования документов и соответствие именованных областей вашего макета стандартам БСП.