При работе в 1С:Бухгалтерия предприятия 3.0 (БП 3.0) многие пользователи и разработчики сталкиваются с тем, что в обычных актах или накладных ТОРГ-12 факсимильная подпись и печать выводятся без проблем, а в Универсальном передаточном документе (УПД) они внезапно исчезают. Разберем детально, почему это происходит и как настроить корректный вывод факсимиле.
Прежде чем приступать к техническим правкам, проанализируем логику программы. В 1С:Бухгалтерия вывод факсимиле в УПД часто ограничен по следующим причинам:
Рассмотрим порядок действий для проверки работоспособности стандартного механизма. Прежде всего, необходимо убедиться, что проблема не вызвана ручными изменениями макета. Для этого выполним следующие действия:
Проанализируем также настройки в самой форме печати. После нажатия кнопки «Печать» и выбора УПД, обратим внимание на верхнюю панель. Там должен быть активен пункт Подпись и печать. Если галочка снята, рисунки не отобразятся.
Выясним, корректно ли привязаны изображения подписей к сотрудникам. Факсимиле в 1С привязано не к организации «вообще», а к конкретным физическим лицам, указанным в документе. Проверим:
.png с прозрачным фоном).Если типовой механизм не устраивает или требуется специфическая логика (например, вывод факсимиле только при статусе «2»), целесообразно использовать механизм расширений. Проанализируем способ, предложенный опытными разработчиками: программная модификация ТабличногоДокумента без изменения самого макета.
Такой подход удобен тем, что при обновлении типовой конфигурации макеты не «затираются», а ваш код продолжает работать. Рассмотрим пример кода, который можно внедрить в процедуру печати через расширение:
// В модуле менеджера или через обработку печати в расширении
&После("СформироватьПечатнуюФормуУПД")
Процедура Х_СформироватьПечатнуюФормуУПД(ПараметрыПечати, ТабличныйДокумент)
// Получаем область, куда нужно вставить факсимиле
// В УПД это обычно области подписей руководителя и бухгалтера
ОбластьПодписи = ТабличныйДокумент.НайтиТекст("[ДолжностьРуководителя]");
Если ОбластьПодписи <> Неопределено Тогда
// Используем типовой механизм 1С для вывода картинок
// Или добавляем рисунок напрямую в ТабДок
Рисунок = ТабличныйДокумент.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок.Картинка = ПолучитьКартинкуФаксимилеОрганизации(ПараметрыПечати.Организация);
// Устанавливаем координаты относительно найденной области
Рисунок.Расположить(ОбластьПодписи);
Рисунок.ГраницаСверху = Ложь;
Рисунок.ГраницаСлева = Ложь;
Рисунок.ГраницаСправа = Ложь;
Рисунок.ГраницаСнизу = Ложь;
КонецЕсли;
КонецПроцедуры
Рассмотрим подробнее важный нюанс: метод ТабличныйДокумент.Рисунки.Добавить() позволяет динамически вставлять изображения. Однако, поскольку макет УПД является динамическим (количество строк товаров меняется), координаты областей подписей смещаются. Поэтому крайне важно использовать метод НайтиТекст() или обращаться к именованным областям макета, чтобы факсимиле не «улетело» на другую страницу или не перекрыло текст документа.
В современных релизах БП 3.0 за вывод факсимиле отвечает общая функция в модуле УправлениеПечатьюБП. Если вы решили дорабатывать вывод программно, посмотрите, как вызывается функция ДобавитьФаксимилеВТабличныйДокумент.
Проанализируем ситуацию: иногда программа считает, что подписи выводить не нужно из-за отсутствия прав у пользователя или из-за того, что документ помечен как «Электронный документ» (ЭДО). В случае использования ЭДО печатные формы с факсимиле часто блокируются специально, так как юридическую значимость имеет только файл с электронной подписью.
Чтобы факсимиле выглядело на печати естественно, придерживайтесь следующих правил:
ВыводитьНаПечать. При программном добавлении убедитесь, что оно установлено в значение Истина.Подводя итог, можно сказать: если факсимиле в УПД не выводится «само», первым делом сбросьте макет к стандартному и проверьте наличие галочки в форме предварительного просмотра. Если же требуется автоматизировать процесс для всех пользователей без исключения, используйте программное расширение с методом НайтиТекст(), чтобы гарантировать точность позиционирования печати и подписи в динамически изменяющемся бланке УПД.