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