Как сделать типовой отчет Т-2 внешним в 1С:ЗУП 3.1 и исправить ошибку формирования?

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом IT и автоматизация бизнеса
← На главную

При попытке сохранить типовой кадровый отчет УнифицированнаяФормаТ2 из конфигурации 1С:Зарплата и управление персоналом 3.1 во внешний файл (.erf) разработчики часто сталкиваются с проблемой: сохраненный отчет перестает формироваться или выдает пустой результат. Рассмотрим причины такого поведения и разберем по шагам, как вернуть отчету работоспособность.

Выясним причину неработоспособности внешнего отчета

Проанализируем технические особенности работы отчетов кадрового учета в 1С:ЗУП 3.1:

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

Способ 1. Добавление инициализации в модуль объекта

Посмотрим на самый быстрый и простой способ исправления внешнего отчета. Если отчет сохранен в отдельный файл .erf, откроем его в конфигураторе и перейдем в Модуль объекта внешнего отчета.

Найдем или создадим предопределенную процедуру ПриКомпоновкеРезультата и добавим в нее явный вызов процедур подготовки схемы компоновки:


Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	// Явно инициализируем отчет перед формированием СКД
	ИнициализироватьОтчет();

КонецПроцедуры

Метод ИнициализироватьОтчет() запускает встроенные процедуры настройки компоновщика макета и восполняет отсутствующие структуры данных, благодаря чему внешняя форма отчета Т-2 начинает корректно формироваться.

Способ 2. Подключение через дополнительные отчеты и обработки

Если требуется сохранить отчет без существенной переработки кода, разберем альтернативный вариант работы через подсистему БСП (Библиотека Стандартных Подсистем):

  1. Добавим в модуль объекта внешнего отчета экспортную функцию СведенияОВнешнейОбработке(), прописав в ней параметры регистрации для подсистемы дополнительных отчетов.
  2. Зарегистрируем файл в справочнике Дополнительные отчеты и обработки в режиме 1С:Предприятие.

При таком запуске механизмы БСП берут на себя инициализацию контекста и подсистемы вариантов отчетов, что минимизирует сбои при формировании печатных форм.

Способ 3. Использование расширения конфигурации

Рассмотрим ещё одно эффективное решение — создание расширения (.cfe) вместо внешнего файла .erf. Отчеты, перенесенные в расширение конфигурации:

  1. Сохраняют модуль менеджера и полноценный доступ к контексту базы данных.
  2. Корректно взаимодействуют с общими модулями подсистемы ВариантыОтчетов.
  3. Не требуют дублирования служебных процедур инициализации вручную.
← На главную