Почему не выводится ФИО исполнителя в печатных формах 1С:УНФ и как это исправить?

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

При работе в конфигурации 1С:Управление нашей фирмой пользователи нередко сталкиваются с ситуацией, когда в сформированной печатной форме (например, в акте об оказании услуг по документу Заказ-наряд) остается пустой строка с подписью исполнителя. При этом в макете печатной формы параметр подписи может визуально присутствовать, а в справочниках заполнены все необходимые реквизиты. Разберем по шагам, почему так происходит и какими способами можно вывести нужные данные в печатную форму.

Анализ причин отсутствия ФИО в печатной форме

Рассмотрим основные факторы, влияющие на отображение подписей и исполнителей в печатных формах 1С:УНФ:

  1. Недоработка алгоритма заполнения в типовом модуле. Наличие параметра в макете (например, Исполнитель или Отпустил) не гарантирует его автоматического заполнения. В некоторых версиях конфигурации параметр добавлен в табличный документ, однако в процедуре формирования печатной формы в модуле менеджера соответствующее значение из реквизитов документа или выборки данных в область макета попросту не передается.
  2. Особенности документа «Заказ-наряд». Печатная форма акта об оказании услуг формируется на основании заказ-наряда, где подписанты могут не заполняться по умолчанию, так как логика типовой конфигурации не всегда однозначно определяет, кто выступает исполнителем — автор документа, мастер цеха или руководитель.
  3. Отсутствие связи пользователя с физическим лицом. Если алгоритм пытается получить ФИО через реквизит Ответственный или текущего пользователя информационной базы, поле останется пустым, если в справочнике Пользователи не заполнена ссылка на элемент справочника Физические лица.
  4. Некорректная периодичность ответственных лиц. В регистре сведений, хранящем ФИО и должности ответственных лиц организации (руководитель, главный бухгалтер), дата действия записи должна быть строго раньше даты формируемого документа.

Шаг 1. Проверка пользовательских данных и настроек

Прежде чем приступать к программной доработке, проанализируем введенные данные в информационной базе:

  1. Откроем карточку организации в разделе Компания и проверим блок ответственных лиц (руководитель, кассир и др.). Убедимся, что дата вступления в должность установлена ранее даты первых документов в системе.
  2. Проверим справочник Физические лица: для нужного сотрудника должна быть заполнена история ФИО.
  3. Перейдем в справочник Пользователи, откроем карточку нужного пользователя и проверим, привязано ли к ней соответствующее физическое лицо.
  4. В самом документе (Заказ-наряд) проверим наличие поля Ответственный или дополнительных реквизитов печати, если они предусмотрены интерфейсом формы.

Шаг 2. Исправление через расширение конфигурации

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

  1. Создадим новое расширение конфигурации в режиме Конфигуратор.
  2. Добавим в расширение документ (например, ЗаказНаряд) и его модуль менеджера.
  3. Переопределим процедуру формирования печатной формы акта с помощью аннотации &Вместо или доработаем заполнение параметров через &После.

Посмотрим на пример кода в модуле менеджера расширения, где при заполнении области подвала акта явно передается ФИО исполнителя из реквизита документа Ответственный:


// Пример заполнения параметра Исполнитель в области макета
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

Если ЗначениеЗаполнено(Шапка.Ответственный) Тогда
    // Получаем представление физлица ответственного сотрудника
    ФИОИсполнителя = ОбщегоНазначения.ПолучитьЗначениеРеквизита(Шапка.Ответственный, "ФизическоеЛицо");
    ОбластьПодвал.Параметры.Исполнитель = Формат(ФИОИсполнителя, "ФИО");
Иначе
    ОбластьПодвал.Параметры.Исполнитель = "";
КонецЕсли;

ТабличныйДокумент.Вывести(ОбластьПодвал);

Шаг 3. Подключение внешней печатной формы

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

  1. Выгрузим типовую процедуру печати и макет акта во внешнюю обработку.
  2. В кодовой части обработчика печати внешней обработки свяжем параметр макета Исполнитель с необходимым источником данных (текущим пользователем, ответственным по документу или исполнителем из табличной части работ).
  3. Зарегистрируем внешнюю печатную форму в режиме 1С:Предприятие через раздел Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки.

Шаг 4. Статическое редактирование макета печатной формы

В ситуации, когда исполнитель не меняется от документа к документу (например, ИП или небольшая сервисная служба с одним мастером), можно обойтись встроенным функционалом пользовательского изменения макетов:

  1. Перейдем в раздел Администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм.
  2. Найдем макет акта об оказании услуг нужного документа и откроем его для редактирования.
  3. Выделим ячейку с параметром подписи исполнителя, изменим тип заполнения ячейки с Параметр на Текст.
  4. Введем требуемую статическую строку (например, Иванов И.И.) и сохраним макет.

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

← На главную