При попытке сохранить типовой кадровый отчет УнифицированнаяФормаТ2 из конфигурации 1С:Зарплата и управление персоналом 3.1 во внешний файл (.erf) разработчики часто сталкиваются с проблемой: сохраненный отчет перестает формироваться или выдает пустой результат. Рассмотрим причины такого поведения и разберем по шагам, как вернуть отчету работоспособность.
Проанализируем технические особенности работы отчетов кадрового учета в 1С:ЗУП 3.1:
.erf модуль менеджера отчета полностью теряется. У внешнего отчета остаются только модуль объекта и модули форм. В типовых решениях значительная часть логики подготовки схемы компоновки данных (СКД), работы с вариантами и инициализации параметров находится именно в модуле менеджера или вызывается через него.ЗарплатаКадрыОтчеты..erf-файла интерактивно этот контекст теряется, а в обработчике ПриКомпоновкеРезультата модуля объекта явный вызов подготавливающих процедур может отсутствовать.Посмотрим на самый быстрый и простой способ исправления внешнего отчета. Если отчет сохранен в отдельный файл .erf, откроем его в конфигураторе и перейдем в Модуль объекта внешнего отчета.
Найдем или создадим предопределенную процедуру ПриКомпоновкеРезультата и добавим в нее явный вызов процедур подготовки схемы компоновки:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
// Явно инициализируем отчет перед формированием СКД
ИнициализироватьОтчет();
КонецПроцедуры
Метод ИнициализироватьОтчет() запускает встроенные процедуры настройки компоновщика макета и восполняет отсутствующие структуры данных, благодаря чему внешняя форма отчета Т-2 начинает корректно формироваться.
Если требуется сохранить отчет без существенной переработки кода, разберем альтернативный вариант работы через подсистему БСП (Библиотека Стандартных Подсистем):
СведенияОВнешнейОбработке(), прописав в ней параметры регистрации для подсистемы дополнительных отчетов.При таком запуске механизмы БСП берут на себя инициализацию контекста и подсистемы вариантов отчетов, что минимизирует сбои при формировании печатных форм.
Рассмотрим ещё одно эффективное решение — создание расширения (.cfe) вместо внешнего файла .erf. Отчеты, перенесенные в расширение конфигурации:
ВариантыОтчетов.