При ведении учета нескольких организаций в единой информационной базе 1С:Управление производственным предприятием (УПП 1.3) часто возникает задача настроить индивидуальный состав подписей или видоизменить унифицированную форму для конкретного юридического лица. Например, требуется скорректировать форму М-11 (Требование-накладная).
Разберем, можно ли сгенерировать внешнюю печатную форму (ВПФ) непосредственно из макета конфигурации, как правильно перенести общий макет в обработку и существует ли штатный способ решить проблему без доработки кода.
Прежде чем приступать к разработке внешней формы, проанализируем исходную потребность. Если цель заключается исключительно в том, чтобы для разных организаций в печатных формах выводились разные сотрудники (руководитель, бухгалтер, материально ответственные лица), снимать конфигурацию с поддержки или писать ВПФ не требуется.
В типовой 1С:УПП механизм заполнения подписантов работает через периодический регистр сведений:
Предприятие → Ответственные лица.Если же требуется изменить сам состав колонок, добавить новые поля для виз согласования или зафиксировать жесткий текст подписи, перейдем к созданию внешней печатной формы.
Платформа 1С:Предприятие не содержит встроенного механизма «конвертации» макета в обработку одной кнопкой. Создать объект конфигурации напрямую из ветки общих макетов невозможно. Однако архитектура ВПФ позволяет полностью изолировать доработку:
.epf).Рассмотрим весь процесс по шагам.
Откроем конфигуратор и выполним следующие действия:
Файл → Новый выберем «Внешняя обработка». Зададим понятное имя, например, ВПФ_ТребованиеНакладная_М11.СсылкаНаОбъект. Установим тип реквизита: ДокументСсылка.ТребованиеНакладная (или составной тип, если форма применяется к нескольким документам). Именно через этот реквизит типовой механизм печати УПП передает ссылку на текущий документ.Общие → Общие макеты, найдем типовой макет ФормаМ11, скопируем его и вставим в ветку «Макеты» нашей внешней обработки.Откроем модуль объекта внешней обработки. Основной точкой входа для формирования печатного документа в обычных формах УПП является экспортная функция Печать(). Она не должна принимать параметров и обязана возвращать сформированный ТабличныйДокумент.
Посмотрим на базовую структуру программного кода модуля объекта:
Функция Печать() Экспорт
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТребованиеНакладная_М11";
// Получаем макет из состава самой внешней обработки
Макет = ЭтотОбъект.ПолучитьМакет("ФормаМ11");
// Формируем печатную форму на основании переданной ссылки
Если ЗначениеЗаполнено(СсылкаНаОбъект) Тогда
СформироватьПечатнуюФорму(ТабДокумент, Макет);
КонецЕсли;
Возврат ТабДокумент;
КонецФункции
Типовой код вывода документа в печать переносится из модуля менеджера или модуля соответствующего документа конфигурации. При переносе важно учесть следующие технические особенности:
ПолучитьОбщийМакет("ФормаМ11"), заменяем вызов на локальный метод обработки: ПолучитьМакет("ФормаМ11").ЭтотОбъект. Во внешней обработке все данные необходимо получать через реквизит СсылкаНаОбъект. Рекомендуется использовать запрос к реквизитам и табличным частям документа для оптимальной производительности.После сохранения файла .epf подключим его к информационной базе в режиме «1С:Предприятие»:
Сервис → Дополнительные отчеты и обработки → Внешние печатные формы.Требование-накладная.При разработке и подключении ВПФ в среде 1С:УПП 1.3 обратим внимание на следующие нюансы:
СведенияОВнешнейОбработке()) типовым механизмом дополнительных обработок УПП не задействуются. Регистрация выполняется полностью через встроенный справочник «Внешние обработки».