В помощь кадровику. Отчет «Среднесписочная численность» для ЗУП.


Отчет на основе СКД, который позволяет увидеть среднесписочную численность в разрезе: подразделений, должностей, месяцев, категорий стат. учета, принадлежности по полу и возрасту и т.д. Через механизм характеристик реализована поддержка использования категорий и свойств объектов. (тестировалось в ЗУП 2.5.25/8.2.12.92, 2.5.37.1/8.2.14.533, на платформах версии ниже 8.2.10 не пойдет)

Поскольку опытного кадровика типовые отчеты, показывающие среднесписочную численность могут только удивлять, мною было принято решение написать этот очет.

Рекомендую использовать на ИБ с клиент-серверной архитектурой (можно и на файловых , но при условии, что фирма небольшая).

Те, кто следит за моими публикациями (а вдруг!), могли уже ознакомиться со схемой построения запроса для получения таблицы исключений состояний, которую потом можно было использовать для расчета среднесписочной численности. Я тогда писал, что вся статья – это лишь прелюдия некоторой более крупной работы.  Это и есть та работа, которую я обещал.

Методика получения среднесписочной численности в одном запросе:

1)      1) Получаем таблицу  дней за выбранный период, индексируем по дате

2)      2) Получаем таблицу сотрудников организации за период, индексируем по сотруднику

3)     3)Получаем таблицу путем декартового произведения  таблиц 1) и 2), индексируем по дате и сотруднику

4)      4)Получаем таблицу Регистра Сведений (далее РС) РаботникиОрганизаций  со всеми интересующими записями за период, индексируем по сотруднику и периоду

5)      5)Получаем таблицу РС СостоянияРаботниковОрганизаций со всеми интересующими записями за период , индексируем по сотруднику и периоду

6)      6)Для каждой записи таблицы 3) реализуем через ТЕТА соединение псевдо срез последних записей таблиц 4) и 5)  - это самое медленное место на этапе выполнения запроса, индексируем по сотруднику и дате

7)      7)Получаем таблицу РС ГрафикиРаботыпоВидамВремени

8)      8)Получаем таблицу «Данные за предшествующий рабочий день», где реализуем псевдо срез первых: к каждой записи с нерабочим днем таблицы 7) находим первый снизу рабочий день из таблицы 6)

9)     9)Получаем таблицу «Средняя численность по дням» путем соединения таблиц 6), 7) и 8)

10)  10)Получаем результирующую таблицу «Среднесписочная»  путем суммирования показателей «дней учтено», «число дней» и «средняя численность» по разрезам.

При любых попытках скопипастить текст запроса или заимствовать его блоки требую ссылаться на данную работу.

 

Полезные ссылки:

http://www.1c-pro.ru/index.php?showtopic=23182
http://www.financial-lawyer.ru/newsbox/upravlencu/upravlenie_personalom/119-528030.html
http://www.buh.ru/document-570

 

Файлы обработки:

-