Почему выгруженный внешний отчет «Унифицированная форма Т-2» в 1С:ЗУП 3.1 формируется пустым и как это исправить?

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

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

Рассмотрим подробно причины такого поведения программы и разберем проверенные способы исправления этой ситуации.

Причина формирования пустого внешнего отчета

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

Вся ключевая логика — подготовка временных таблиц, программное заполнение параметров, кадровых сведений, стажей и данных воинского учета — находится в модуле менеджера типового отчета. При сохранении отчета из конфигуратора во внешний файл .erf модуль менеджера отсекается платформой, так как у внешних отчетов существует только модуль объекта и модуль формы.

В результате при запуске внешнего отчета платформа не исполняет алгоритм из модуля менеджера. СКД не получает инициализированные параметры данных и не может программно сформировать временные таблицы, из-за чего на экран выводится пустой табличный документ.

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

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

Преимущества использования расширения:

  1. Сохраняется модуль менеджера отчета, вся логика БСП и встроенные варианты отчетов.
  2. Конфигурация остается на полной поддержке поставщика.
  3. Изменения легко переносить между базами и поддерживать при обновлениях ЗУП.

Посмотрим на порядок действий при создании расширения:

  1. Перейдем в меню «Администрирование» — «Печатные формы, отчеты и обработки» — «Расширения» (или через конфигуратор в дереве конфигурации).
  2. Добавим новое расширение.
  3. Найдем в основной конфигурации отчет УнифицированнаяФормаТ2 и добавим его в расширение.
  4. Внесем необходимые доработки в макет СКД, форму или модуль менеджера отчета непосредственно в расширении.

Способ 2. Перенос логики в модуль объекта внешнего отчета

Если задача требует использования именно отдельного файла отчета (.erf), разберем, как адаптировать его вручную.

Проанализируем пошаговый алгоритм переработки отчета:

  1. Откроем внешний отчет в конфигураторе и перейдем в модуль объекта.
  2. Скопируем служебные процедуры и функции формирования данных из модуля менеджера оригинального отчета в модуль объекта внешнего отчета.
  3. Переопределим событие ПриКомпоновкеРезультата в модуле объекта:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	// Переносим программную инициализацию параметров и компоновку макета
	// Из модуля менеджера типового отчета
	
КонецПроцедуры
  1. Программно заполним параметры компоновщика настроек (КомпоновщикНастроек.Настройки.ПараметрыДанных), передав организацию, период и массив сотрудников.
  2. Если отчет подключается через справочник «Дополнительные отчеты и обработки», добавим в модуль объекта экспортную функцию СведенияОВнешнейОбработке() для интеграции с подсистемой БСП.

Таким образом, для корректной работы кадровых отчетов в ЗУП 3.1 необходимо либо перенести всю логику формирования данных из модуля менеджера в модуль объекта внешнего отчета, либо использовать механизмы расширения конфигурации.

← На главную