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