Как получить среднесписочную численность по дням в 1С:ЗУП 3.1

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

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

Почему в стандартном отчете нет группировки по дням?

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

Рассмотрим основные причины отсутствия простой настройки «День» в интерфейсе:

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

Разбираем программный механизм «Статистика персонала»

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

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

Посмотрим на пример того, как программно инициируется такой расчет (упрощенная схема обращения к механизму):


ПараметрыРасчета = КадровыйУчет.ПараметрыДляЗапросаВТДанныеДляРасчетаСреднесписочнойЧисленности();
ПараметрыРасчета.НачалоПериода = ДатаНачала;
ПараметрыРасчета.КонецПериода = ДатаКонца;
// Здесь система формирует ВТ (временную таблицу) "ВТДанныеДляРасчетаСреднесписочнойЧисленности"

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

Способ 1: Использование расшифровки (для пользователей)

Прежде чем приступать к разработке, рассмотрим, как можно частично решить задачу штатными средствами. Хотя группировки «День» в настройках нет, мы можем воспользоваться механизмом расшифровки:

  1. Сформируйте отчет «Численность и текучесть кадров» за нужный месяц.
  2. Найдите ячейку со значением среднесписочной численности.
  3. Дважды кликните по ней и в появившемся меню выберите «Расшифровать по...» -> «Сотрудник».

В открывшемся окне вы увидите список сотрудников и их «вклад» в итоговую цифру. Если у сотрудника указано значение, отличное от 1.0 (например, 0.533), это прямой сигнал к тому, что в какие-то дни месяца он не входил в ССЧ. Это не дает таблицы по датам, но позволяет быстро найти «проблемных» сотрудников.

Способ 2: Внешние отчеты для проверки ССЧ

Поскольку проблема массовая, для 1С:ЗУП 3.1 создано множество внешних обработок и отчетов, называемых обычно «Проверка расчета ССЧ». Рассмотрим подробнее, как они работают.

Такие отчеты чаще всего строятся на базе схемы компоновки данных (СКД), где в качестве источника данных выступает программный вызов того самого механизма статистики. Выясним преимущества этого подхода:

Расчет нарастающим итогом с начала года

В сообщении 7 на форуме упоминается расчет нарастающим итогом. Это критически важно для организаций, претендующих на льготы по налогам (например, IT-компании). Давайте разберем, по какой формуле считается средняя численность за несколько месяцев:

ССЧ за период = (ССЧ мес1 + ССЧ мес2 + ... + ССЧ месN) / N

Где N — количество месяцев в периоде. Важно помнить, что ССЧ каждого отдельного месяца уже рассчитана на основе ежедневных данных. Если вам нужно проверить среднюю за квартал, вам все равно придется сначала убедиться в корректности ежедневных данных за каждый из трех месяцев.

Рекомендации по реализации собственного отчета

Если вы решили написать свой отчет для вывода данных по дням, рекомендуем придерживаться следующего алгоритма:

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

Подведем итог: Получить среднесписочную численность по дням в ЗУП 3.1 стандартной «галочкой» невозможно. Однако, понимая устройство механизма СтатистикаПерсонала, вы можете либо воспользоваться внешними инструментами анализа, либо разработать собственный отчет, который обеспечит полную прозрачность кадрового учета в вашей компании.

← На главную