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

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

При разработке собственных отчетов в конфигурации 1С:Зарплата и Управление Персоналом 3.1 часто возникает необходимость вывести данные о среднесписочной численности (ССЧ). Этот показатель является ключевым для статистической отчетности, такой как форма П-4, и его расчет вручную через запросы к регистрам может быть крайне трудоемким из-за множества законодательных нюансов (учет декретных отпусков, внешних совместителей, договоров ГПХ и неполного рабочего времени). В этой статье мы разберем, как использовать встроенные механизмы системы для получения этих данных программным путем.

Базовый метод: Использование модуля КадровыйУчет

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

Эта функция является экспортной и принимает на вход три основных параметра: ссылку на организацию, начало и конец периода. Проанализируем пример её вызова:


РезультатЧисленность = КадровыйУчет.СреднесписочнаяЧисленностьРаботающих(Организация, НачалоПериода, КонецПериода);

Функция возвращает Структуру, что очень удобно для дальнейшей обработки. Выясним, какие именно поля содержатся в этом результате:

  1. СреднесписочнаяЧисленностьРаботников — основное значение ССЧ за указанный период.
  2. СреднесписочнаяЧисленностьЖенщин — показатель ССЧ, отфильтрованный по полу.
  3. СреднесписочнаяЧисленностьИнвалидов — ССЧ сотрудников, имеющих справку об инвалидности.
  4. ЧисленностьРаботников — общая численность на дату (списочный состав).
  5. ЧисленностьЖенщин и ЧисленностьИнвалидов — аналогичные разрезы для списочного состава.

Этот метод хорош тем, что он инкапсулирует в себе сложные алгоритмы 1С, учитывающие календарные дни и исключаемые категории сотрудников.

Продвинутый метод: Модуль УчетСреднесписочнойЧисленности

Если ваша задача связана с заполнением формы П-4 или других сложных статистических форм, базовой функции может быть недостаточно. В современных версиях ЗУП 3.1 (начиная с 3.1.18) рекомендуется использовать специализированный модуль УчетСреднесписочнойЧисленности. Выясним причину такой рекомендации.

Дело в том, что для формы П-4 численность должна быть разделена по категориям, которые считаются по разным правилам:

Рассмотрим использование функции СреднесписочнаяЧисленностьЗаПериод из этого модуля. Она позволяет более гибко настраивать параметры расчета через передачу дополнительных условий. Посмотрим на пример логики:


ПараметрыРасчета = УчетСреднесписочнойЧисленности.ПараметрыРасчетаСреднесписочнойЧисленности();
ПараметрыРасчета.Организация = СсылкаНаОрганизацию;
ПараметрыРасчета.НачалоПериода = ДатаНачала;
ПараметрыРасчета.КонецПериода = ДатаКонца;
// Здесь можно указать конкретные типы численности (СписочныйСостав, Совместители, ГПХ)

ДанныеССЧ = УчетСреднесписочнойЧисленности.СреднесписочнаяЧисленностьЗаПериод(ПараметрыРасчета);

Нюансы алгоритма расчета в 1С

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

1. Исключение сотрудников из ССЧ: Несмотря на то, что сотрудники находятся в штате, они не включаются в среднесписочную численность, если находятся в отпуске по беременности и родам или в отпуске по уходу за ребенком. Также исключаются сотрудники, находящиеся в неоплачиваемом учебном отпуске.

2. Работа на неполную ставку: Программа анализирует график работы и кадровые документы. Если сотрудник работает неполный день по соглашению сторон, он учитывается в ССЧ пропорционально времени. Однако, если неполный режим введен по инициативе работодателя (например, из-за сокращения объемов производства), такие сотрудники учитываются как целые единицы.

3. Выходные и праздничные дни: Для корректного расчета за месяц программа берет данные за каждый календарный день. Численность за выходной день принимается равной численности за предшествующий рабочий день.

Использование программных механизмов статистической отчетности

Если вам нужно получить данные, которые будут гарантированно совпадать с регламентированным отчетом П-4, рассмотрим более сложный, но надежный путь — обращение к механизму заполнения статистики. В ЗУП 3.1 за это отвечает модуль ЗаполнениеОтчетностиСтатистики.

Этот механизм использует систему компоновки данных (СКД). Вместо написания кода «с нуля», мы можем программно вызвать компоновку данных, которую использует отчет П-4. Посмотрим на основные регистры-источники, к которым обращается система:

Практические советы по реализации

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

  1. Определите точность данных: Если вам нужна просто цифра для управленческого отчета — используйте КадровыйУчет.СреднесписочнаяЧисленностьРаботающих. Это быстро и надежно.
  2. Работайте с временными таблицами: Если отчет строится по множеству подразделений, вызов функции в цикле будет медленным. В этом случае проанализируйте модуль УчетСреднесписочнойЧисленностиБазовый, где есть процедуры для заполнения временных таблиц запроса данными о численности. Это позволит получить данные одним запросом.
  3. Проверка данных: Всегда сравнивайте результат вашего кода с типовым отчетом «Численность и текучесть кадров» или разделом 2 формы П-4. Если цифры расходятся, проверьте параметры ТипЧисленности и настройки периодов.

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

← На главную