При работе в режиме «1С:Предприятие» пользователи часто сталкиваются с ситуацией, когда при нажатии на кнопку Печать в форме документа выпадает список из множества вариантов. Однако, открыв этот же документ в конфигураторе, разработчик обнаруживает в ветке Макеты всего одну форму или вовсе пустой список. Это распространенная ситуация для современных конфигураций на базе Библиотеки стандартных подсистем (БСП). Давайте разберем по шагам, где именно «прячутся» остальные макеты и как их обнаружить для редактирования.
В современных конфигурациях 1С (УТ 11, БП 3.0, ERP, ЗУП 3) список печатных форм формируется динамически с помощью программного кода. Первым делом нам необходимо заглянуть в модуль менеджера документа. Для этого в дереве конфигурации кликните правой кнопкой мыши на документ и выберите пункт Открыть модуль менеджера.
Рассмотрим процедуру, которая отвечает за регистрацию команд печати. Обычно она называется ДобавитьКомандыПечати. Проанализируем её структуру:
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
// Пример добавления команды печати
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "СчетНаОплату";
КомандаПечати.Представление = НСтр("ru = 'Счет на оплату'");
КомандаПечати.ПроверкаПроведенности = Ложь;
КонецПроцедуры
Если вы видите в этом коде идентификаторы, которые совпадают с названиями кнопок в пользовательском интерфейсе, значит, печатная форма регистрируется здесь. Далее следует найти процедуру Печать в этом же модуле. Именно в ней описывается, какой макет система должна вызвать. Часто там можно встретить обращение к другим объектам или общим модулям.
Если макет используется в нескольких различных документах (например, это стандартная форма ТОРГ-12, УПД или Счет-фактура), разработчики 1С выносят его в общую ветку, чтобы не дублировать данные. Проанализируем ветку дерева конфигурации Общие -> Общие макеты.
Часто в коде формирования печатной формы можно встретить конструкцию типа:
УправлениеПечатью.МакетОбщий("ПФ_MXL_УниверсальныйПередаточныйДокумент")
В этом случае правки нужно вносить именно в общем макете, но будьте осторожны: изменения отразятся на всех документах, которые используют эту форму.
Одна из наиболее вероятных причин появления «лишних» пунктов в меню печати — это использование механизма Дополнительных отчетов и обработок. В режиме «Предприятие» перейдем в раздел Администрирование -> Печатные формы, отчеты и обработки -> Дополнительные отчеты и обработки. Для быстрого извлечения файлов на диск можно использовать обработку для выгрузки дополнительных отчетов и обработок.
Если в открывшемся списке вы видите названия, совпадающие с вашими вариантами печати, значит, макет находится внутри внешней обработки. Чтобы его получить, выполните следующие действия:
.epf файл в конфигураторе.Макеты внутри этой обработки.Если основная конфигурация находится на поддержке, разработчики могли добавить новые печатные формы через Расширения. В дереве конфигурации найдите самый нижний узел Расширения. Проанализируйте каждое активное расширение:
Макеты в рамках расширения.ДобавитьКомандыПечати, которая добавляет новые пункты меню или подменяет стандартные.В БСП существует механизм, позволяющий пользователям редактировать макеты без участия программиста прямо в пользовательском интерфейсе. Выясним, не была ли создана «пользовательская версия» макета. Для этого в режиме «Предприятие» перейдите в Администрирование -> Печатные формы, отчеты и обработки -> Макеты печатных форм.
Если в списке напротив макета стоит значок «отредактированного» (обычно это синий карандаш), значит, система использует версию из информационной базы, а не из конфигуратора. Чтобы увидеть оригинал или внести изменения, которые подхватит конфигуратор, нужно понимать, что приоритет всегда у макета из этого списка. Для работы с этим механизмом пригодится инструкция по редактированию печатных форм в режиме пользователя.
Если вышеуказанные способы не помогли, воспользуемся проверенным методом — Глобальным поиском (Ctrl+Shift+F). Введите точное название кнопки печати, которую вы видите в интерфейсе, в кавычках. Например, "Заказ на сборку (внутренний)".
Разберем результаты поиска:
КомандаПечати.Представление = ..., значит, мы нашли место регистрации команды.Общих макетах, значит, форма хранится там.Таким образом, мы выяснили, что отсутствие макета в основной ветке документа — это не ошибка, а следствие гибкой архитектуры 1С. Проанализировав Модуль менеджера, Общие макеты и Внешние обработки, вы обязательно найдете искомый источник печатной формы.