Как вывести факсимильную подпись в УПД в программе 1С:Бухгалтерия 3.0

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

При работе в 1С:Бухгалтерия предприятия 3.0 (БП 3.0) многие пользователи и разработчики сталкиваются с тем, что в обычных актах или накладных ТОРГ-12 факсимильная подпись и печать выводятся без проблем, а в Универсальном передаточном документе (УПД) они внезапно исчезают. Разберем детально, почему это происходит и как настроить корректный вывод факсимиле.

Анализируем причины отсутствия факсимиле в УПД

Прежде чем приступать к техническим правкам, проанализируем логику программы. В 1С:Бухгалтерия вывод факсимиле в УПД часто ограничен по следующим причинам:

  1. Статус документа: УПД может иметь статус «1» (счет-фактура и первичный документ) или «2» (только первичный документ). Согласно ст. 169 НК РФ, использование факсимиле на счетах-фактурах не допускается. Программа может блокировать вывод факсимиле для документов со статусом «1», чтобы минимизировать налоговые риски пользователя.
  2. Пользовательские макеты: Если кто-то из пользователей редактировал макет УПД вручную (через меню Администрирование — Макеты печатных форм), механизм автоматической подстановки картинок может перестать работать, так как при обновлении типовой конфигурации структура макета изменилась, а пользовательский макет остался старым.
  3. Настройки интерфейса: Самая банальная причина — не нажатая кнопка в окне предварительного просмотра.

Шаг 1: Проверка пользовательских настроек и макетов

Рассмотрим порядок действий для проверки работоспособности стандартного механизма. Прежде всего, необходимо убедиться, что проблема не вызвана ручными изменениями макета. Для этого выполним следующие действия:

  1. Перейдем в раздел Администрирование — Печатные формы, отчеты и обработки — Макеты печатных форм.
  2. Найдем в списке макет с наименованием УниверсальныйПередаточныйДокумент.
  3. Если макет выделен жирным шрифтом или имеет пометку об изменении, выделим его и нажмем кнопку Использовать стандартный макет. Часто именно это действие возвращает функционал вывода факсимиле.

Проанализируем также настройки в самой форме печати. После нажатия кнопки «Печать» и выбора УПД, обратим внимание на верхнюю панель. Там должен быть активен пункт Подпись и печать. Если галочка снята, рисунки не отобразятся.

Шаг 2: Проверка ответственных лиц и изображений

Выясним, корректно ли привязаны изображения подписей к сотрудникам. Факсимиле в 1С привязано не к организации «вообще», а к конкретным физическим лицам, указанным в документе. Проверим:

Шаг 3: Программная доработка через расширение

Если типовой механизм не устраивает или требуется специфическая логика (например, вывод факсимиле только при статусе «2»), целесообразно использовать механизм расширений. Проанализируем способ, предложенный опытными разработчиками: программная модификация ТабличногоДокумента без изменения самого макета.

Такой подход удобен тем, что при обновлении типовой конфигурации макеты не «затираются», а ваш код продолжает работать. Рассмотрим пример кода, который можно внедрить в процедуру печати через расширение:


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

КонецПроцедуры

Рассмотрим подробнее важный нюанс: метод ТабличныйДокумент.Рисунки.Добавить() позволяет динамически вставлять изображения. Однако, поскольку макет УПД является динамическим (количество строк товаров меняется), координаты областей подписей смещаются. Поэтому крайне важно использовать метод НайтиТекст() или обращаться к именованным областям макета, чтобы факсимиле не «улетело» на другую страницу или не перекрыло текст документа.

Шаг 4: Работа с методом «УправлениеПечатьюБП»

В современных релизах БП 3.0 за вывод факсимиле отвечает общая функция в модуле УправлениеПечатьюБП. Если вы решили дорабатывать вывод программно, посмотрите, как вызывается функция ДобавитьФаксимилеВТабличныйДокумент.

Проанализируем ситуацию: иногда программа считает, что подписи выводить не нужно из-за отсутствия прав у пользователя или из-за того, что документ помечен как «Электронный документ» (ЭДО). В случае использования ЭДО печатные формы с факсимиле часто блокируются специально, так как юридическую значимость имеет только файл с электронной подписью.

Рекомендации по подготовке изображений

Чтобы факсимиле выглядело на печати естественно, придерживайтесь следующих правил:

  1. Используйте формат PNG с прозрачностью. Это позволит избежать белых прямоугольников, перекрывающих линии макета УПД.
  2. Оптимизируйте размер файла. Слишком тяжелые картинки (по 5-10 Мб каждая) могут привести к существенным задержкам при формировании печатной формы, особенно если в документе много страниц.
  3. Проверьте свойство рисунка ВыводитьНаПечать. При программном добавлении убедитесь, что оно установлено в значение Истина.

Подводя итог, можно сказать: если факсимиле в УПД не выводится «само», первым делом сбросьте макет к стандартному и проверьте наличие галочки в форме предварительного просмотра. Если же требуется автоматизировать процесс для всех пользователей без исключения, используйте программное расширение с методом НайтиТекст(), чтобы гарантировать точность позиционирования печати и подписи в динамически изменяющемся бланке УПД.

← На главную