Как настроить внешний отчет Численность и текучесть кадров в 1С:ЗУП: убираем заголовки, группировки и лишние параметры

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

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

Удаление заголовка отчета и работа с макетами СКД

Одной из первых задач при создании внешнего отчета является очистка визуального пространства от стандартных заголовков. Часто простая очистка макета в схеме компоновки данных (СКД) не приносит результата. Проанализируем, почему это происходит и как решить проблему.

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

  1. Откроем схему компоновки данных (СКД) нашего внешнего отчета.
  2. Перейдем на закладку Настройки, а затем на вкладку Дополнительные настройки.
  3. Найдем параметр Выводить заголовок и установим его значение в Не выводить.

Если после этого заголовок все еще отображается, значит, он генерируется в модуле объекта отчета. Нам нужно найти процедуру ПриКомпоновкеРезультата. Рассмотрим пример кода, который позволяет подавить стандартный вывод:


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

Установка СтандартнаяОбработка = Ложь позволяет нам полностью управлять процессом формирования табличного документа, игнорируя настройки общего модуля ТиповыеОтчеты.

Настройка структуры группировок без организации

В отчетах по численности персонала группировка по организации часто является обязательной «сверху». Если стоит задача убрать организацию и оставить только подразделения или другие разрезы, важно правильно настроить иерархию в СКД.

Разберем по шагам, как изменить структуру группировок:

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

Проанализируем ситуацию: если после удаления организации отчет выводится пустым, это означает, что параметры получения данных завязаны на наличие этого поля. Проверьте, чтобы в выбранных полях (вкладка Выбранные поля) присутствовали необходимые ресурсы, такие как СреднесписочнаяЧисленность или КоличествоСтавок.

Управление параметрами «Разбить по подразделениям» и «Округлять значения»

Типовой отчет «Численность и текучесть кадров» содержит специфические флажки (булевы параметры), которые управляют логикой расчета. Выясним, как скрыть их от пользователя, сохранив при этом нужную функциональность.

Параметр РазбитьПоПодразделениям отвечает за иерархический вывод структуры компании, а ОкруглятьРезультаты определяет, будет ли среднесписочная численность выводиться с десятичными знаками или округляться до целого (согласно методологии Росстата).

Чтобы убрать эти «галочки» из интерфейса настроек, выполним следующие действия в СКД:

  1. Перейдем на закладку Параметры.
  2. Найдем строку с именем параметра (например, ОкруглятьЗначения).
  3. В колонке Ограничение доступности установим флаг. Это скроет параметр из формы настроек отчета для пользователя.
  4. В колонке Значение установим нужное нам состояние по умолчанию (снятая галочка — Ложь, установленная — Истина).

Важно помнить, что логика этих параметров заложена глубоко в алгоритмах запросов. Например, расчет среднесписочной численности часто использует общий модуль УчетСреднесписочнойЧисленности. Если вы программно передаете значение в компоновщик, убедитесь, что тип данных строго соответствует ожидаемому (Булево).

Особенности программной модификации внешнего отчета (.erf)

Поскольку мы работаем с внешним файлом отчета (.erf), у нас есть преимущество — мы можем переопределить поведение формы. Если стандартные настройки группировок «восстанавливаются» при открытии, следует обратить внимание на модуль формы или модуль объекта.

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

Посмотрим на пример того, как можно программно отключить отображение определенных полей в пользовательских настройках через КомпоновщикНастроек:


// Пример отключения видимости группировки программно
Для Каждого ЭлементНастройки Из КомпоновщикНастроек.Настройки.Структура Цикл
    Если ТипЗнч(ЭлементНастройки) = Тип("ГруппировкаКомпоновкиДанных") Тогда
        // Проверяем поле группировки и отключаем использование
        ЭлементНастройки.Использование = Ложь; 
    КонецЕсли;
КонецЦикла;

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

← На главную