Как найти печатную форму документа в 1С:ERP, если ее нет в стандартных макетах

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

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

Проверка внешних печатных форм (ВПФ)

Первым делом проанализируем справочник «Дополнительные отчеты и обработки». В крупных внедрениях ERP функционал часто расширяется за счет внешних обработок, чтобы не снимать конфигурацию с поддержки. Если вы видите печатную форму в списке, но не видите ее в Документ.ПроизводствоБезЗаказа.Макеты, скорее всего, это ВПФ.

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


ВЫБРАТЬ
    ДополнительныеОтчетыИОбработкиНазначение.Ссылка КАК Ссылка,
    ДополнительныеОтчетыИОбработкиНазначение.ОбъектНазначения КАК ОбъектНазначения
ИЗ
    Справочник.ДополнительныеОтчетыИОбработки.Назначение КАК ДополнительныеОтчетыИОбработкиНазначение
ГДЕ
    ДополнительныеОтчетыИОбработкиНазначение.ОбъектНазначения = &ОбъектНазначения

В качестве параметра &ОбъектНазначения следует передать пустую ссылку нужного документа или его имя. Если запрос вернет результат, значит, искомая форма находится внутри файла .epf, хранящегося в реквизите ХранилищеОбработки этого справочника.

Поиск в расширениях конфигурации

Если справочник дополнительных обработок пуст, следующим шагом проверим расширения. В современных версиях ERP (2.4, 2.5) доработки массово выносятся в расширения. Обычный поиск (Ctrl+Shift+F) может не дать результатов, если в настройках поиска не установлена галочка «Искать во всех конфигурациях» (включая расширения).

Проанализируем ситуацию, когда расширений много (например, более 30). В этом случае поиск по ключевым словам из макета может не сработать, если текст в макете формируется динамически или заимствован из общих макетов. Мы рекомендуем проверить следующие методы в расширениях для документа ПроизводствоБезЗаказа:

  1. Процедура ДобавитьКомандыПечати в модуле менеджера или модуле локализации.
  2. Переопределение общих модулей печати, таких как УправлениеПечатью.
  3. Наличие собственных макетов в расширении, которые привязаны к заимствованному документу.

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

Использование замера производительности для поиска кода

Когда визуальный поиск в конфигураторе не помогает, воспользуемся Замером производительности. Это самый надежный способ отследить путь исполнения программы. Рассмотрим алгоритм действий:

  1. Откройте форму документа и подготовьтесь к нажатию кнопки печати.
  2. В конфигураторе выберите «Отладка» — «Замер производительности».
  3. Вернитесь в режим «1С:Предприятие» и сформируйте печатную форму.
  4. Сразу после появления формы на экране остановите замер в конфигураторе.

Проанализируем полученную таблицу. Ищите строки, связанные с формированием табличного документа. Обратите внимание на вызовы из общих модулей УправлениеПечатью, УправлениеПечатьюБСП и особенно на вызовы процедур СформироватьПечатныеФормы. Если в замере фигурируют временные файлы (пути в папке Temp с расширением .epf), это прямое доказательство использования внешней печатной формы.

Особенности архитектуры ERP и модули локализации

В 1С:ERP логика печати часто разнесена между основным модулем менеджера и специализированными модулями локализации. Выясним причину, почему поиск по названию может не давать результатов в основном объекте. Для документов производства команды печати часто регистрируются в модуле ПроизводствоБезЗаказаЛокализация.

Проверьте наличие процедуры:


Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
    // Здесь регистрируются стандартные формы, такие как МХ-18
КонецПроцедуры

Если ваша форма (например, «Лимитно-заборная карта») не является стандартной для этого документа в типовой поставке (так как ЛЗК обычно относится к Заказу на производство или Заказу материалов), то она была добавлена разработчиками внедрения.

Метод массовой выгрузки внешних обработок

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

После выгрузки всех .epf и .erf файлов в одну директорию, можно воспользоваться внешними средствами поиска по тексту (например, Total Commander или специализированные утилиты поиска в файлах). Это позволит мгновенно найти макет по любому специфичному заголовку или названию ячейки, даже если обработка не зарегистрирована в текущей базе под понятным именем.

Резюме действий

Подведем итог. Если печатная форма «Лимитно-заборная карта» отображается в документе Производство без заказа, но скрыта от поиска:

  1. Проверяем справочник «Дополнительные отчеты и обработки» (наиболее вероятное место).
  2. Запускаем замер производительности и ищем обращения к внешним обработкам или расширениям.
  3. Ищем в расширениях, убедившись, что область поиска включает все конфигурации.
  4. Проверяем модули локализации (суффикс Локализация), где в ERP сосредоточена специфика РФ.

Помните, что в типовой ERP форма ЛЗК логически привязана к обеспечению материалами (Заказам), поэтому ее наличие в документе факта выпуска (Производство без заказа) — это почти всегда признак кастомизации системы.

← На главную