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