В процессе сопровождения или доработки 1С:ERP программисты часто сталкиваются с ситуацией, когда в меню «Печать» документа (например, ПроизводствоБезЗаказа) присутствует определенная форма (например, «Лимитно-заборная карта»), но при попытке найти ее макет или код формирования в конфигураторе стандартными средствами поиска ничего не обнаруживается. Рассмотрим детально, почему так происходит и по каким шагам нужно действовать, чтобы обнаружить «скрытую» логику печати.
Первым делом проанализируем справочник «Дополнительные отчеты и обработки». В крупных внедрениях ERP функционал часто расширяется за счет внешних обработок, чтобы не снимать конфигурацию с поддержки. Если вы видите печатную форму в списке, но не видите ее в Документ.ПроизводствоБезЗаказа.Макеты, скорее всего, это ВПФ.
Чтобы быстро подтвердить это предположение программно, мы можем выполнить запрос к базе данных. Разберем пример запроса, который поможет найти все дополнительные обработки, назначенные конкретному типу документа:
ВЫБРАТЬ
ДополнительныеОтчетыИОбработкиНазначение.Ссылка КАК Ссылка,
ДополнительныеОтчетыИОбработкиНазначение.ОбъектНазначения КАК ОбъектНазначения
ИЗ
Справочник.ДополнительныеОтчетыИОбработки.Назначение КАК ДополнительныеОтчетыИОбработкиНазначение
ГДЕ
ДополнительныеОтчетыИОбработкиНазначение.ОбъектНазначения = &ОбъектНазначения
В качестве параметра &ОбъектНазначения следует передать пустую ссылку нужного документа или его имя. Если запрос вернет результат, значит, искомая форма находится внутри файла .epf, хранящегося в реквизите ХранилищеОбработки этого справочника.
Если справочник дополнительных обработок пуст, следующим шагом проверим расширения. В современных версиях ERP (2.4, 2.5) доработки массово выносятся в расширения. Обычный поиск (Ctrl+Shift+F) может не дать результатов, если в настройках поиска не установлена галочка «Искать во всех конфигурациях» (включая расширения).
Проанализируем ситуацию, когда расширений много (например, более 30). В этом случае поиск по ключевым словам из макета может не сработать, если текст в макете формируется динамически или заимствован из общих макетов. Мы рекомендуем проверить следующие методы в расширениях для документа ПроизводствоБезЗаказа:
ДобавитьКомандыПечати в модуле менеджера или модуле локализации.УправлениеПечатью.Для быстрой диагностики можно попробовать на копии базы последовательно отключать расширения методом «половинного деления». Если после отключения группы расширений форма исчезла из меню — искомый код находится в одном из них.
Когда визуальный поиск в конфигураторе не помогает, воспользуемся Замером производительности. Это самый надежный способ отследить путь исполнения программы. Рассмотрим алгоритм действий:
Проанализируем полученную таблицу. Ищите строки, связанные с формированием табличного документа. Обратите внимание на вызовы из общих модулей УправлениеПечатью, УправлениеПечатьюБСП и особенно на вызовы процедур СформироватьПечатныеФормы. Если в замере фигурируют временные файлы (пути в папке Temp с расширением .epf), это прямое доказательство использования внешней печатной формы.
В 1С:ERP логика печати часто разнесена между основным модулем менеджера и специализированными модулями локализации. Выясним причину, почему поиск по названию может не давать результатов в основном объекте. Для документов производства команды печати часто регистрируются в модуле ПроизводствоБезЗаказаЛокализация.
Проверьте наличие процедуры:
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
// Здесь регистрируются стандартные формы, такие как МХ-18
КонецПроцедуры
Если ваша форма (например, «Лимитно-заборная карта») не является стандартной для этого документа в типовой поставке (так как ЛЗК обычно относится к Заказу на производство или Заказу материалов), то она была добавлена разработчиками внедрения.
Рассмотрим продвинутый совет для работы в сильно «допиленных» конфигурациях. Чтобы исключить ситуацию, когда вы ищете код в конфигураторе, а он находится во внешнем файле, рекомендуется выполнить массовую выгрузку всех ВПФ в локальную папку на диске.
После выгрузки всех .epf и .erf файлов в одну директорию, можно воспользоваться внешними средствами поиска по тексту (например, Total Commander или специализированные утилиты поиска в файлах). Это позволит мгновенно найти макет по любому специфичному заголовку или названию ячейки, даже если обработка не зарегистрирована в текущей базе под понятным именем.
Подведем итог. Если печатная форма «Лимитно-заборная карта» отображается в документе Производство без заказа, но скрыта от поиска:
Локализация), где в ERP сосредоточена специфика РФ.Помните, что в типовой ERP форма ЛЗК логически привязана к обеспечению материалами (Заказам), поэтому ее наличие в документе факта выпуска (Производство без заказа) — это почти всегда признак кастомизации системы.