В работе кадровой службы и HR-аналитиков одной из наиболее частых задач является анализ заполненности штатного расписания. Отчет «Штатная расстановка» в программе «1С:Зарплата и управление персоналом» (ЗУП 3.1) предоставляет подробные сведения о том, какие сотрудники занимают те или иные позиции. Однако при попытке настроить отчет под специфические требования руководства пользователи регулярно сталкиваются со следующей проблемой:
При установке отбора по занятым позициям (чтобы скрыть пустые «вакансии» и видеть только работающих сотрудников) отчет начинает некорректно рассчитывать общие итоги по ставкам. Свободные и общие ставки начинают суммироваться исключительно по тем позициям, на которых числится хотя бы один человек. Полностью вакантные должности и их ставки просто исчезают из общих итогов отчета, искажая общую картину по предприятию.
В этой статье мы подробно разберем природу данной проблемы, выясним, как работает механизм компоновки данных (СКД) в 1С при наложении отборов, и рассмотрим пошаговые варианты решения задачи с помощью пользовательских полей и альтернативных настроек.
Для того чтобы эффективно решить проблему, проанализируем внутреннюю логику работы системы компоновки данных. Когда мы открываем настройки отчета и устанавливаем жесткое условие (например, Состояние позиции равно Занята или накладываем фильтр по заполненности сотрудника), СКД применяет этот отбор ко всей выборке данных на уровне запроса к базе данных или на уровне фильтрации результирующего набора.
Это приводит к следующему результату:
Количество ставок и Свободно ставок.Ниже мы подробно разберем несколько практических способов обойти это ограничение платформы и получить корректный, информативный отчет.
Прежде чем приступать к написанию формул в пользовательских полях, проверим стандартный функционал отчета, который позволяет скрыть пустые строки визуально, но сохранить их математический учет в итогах.
Выполним следующие шаги:
Ложь).Этот параметр работает иначе, чем обычный отбор по состоянию позиции. Он не исключает незанятые позиции из выборки данных СКД, а лишь скрывает их визуальное отображение в итоговой таблице. При этом все математические итоги в шапке отчета и разрезе подразделений рассчитываются с учетом абсолютно всех позиций штатного расписания — как занятых, так и вакантных.
Если первый способ не подходит и вам требуется более тонкая фильтрация, мы можем наложить отбор не на весь отчет целиком, а только на конкретную группировку строк. Например, мы можем скрыть пустые строки на уровне детальных записей сотрудников.
Рассмотрим этот процесс по шагам:
Детальные записи или группировка по полю Сотрудник).Сотрудник Заполнено (или Сотрудник СпецЗначение Не Заполнено с оператором отрицания).В этом случае на уровне итогов по должностям и подразделениям данные по ставкам по-прежнему будут суммироваться корректно, так как исходный набор данных не был урезан глобальным фильтром.
Что делать, если пользователю жизненно важно видеть в детальных строках именно долю ставки конкретного сотрудника (например, 0.5 или 0.25 ставки по совместительству), а в итогах по подразделениям — правильное математическое соотношение запланированных и свободных ставок? Для решения этой задачи идеально подходит механизм пользовательских полей СКД.
Давайте выясним разницу между схожими показателями в системе:
Количество ставок (из группы «Данные позиции») — это жесткая величина, запланированная в штатном расписании для данной должности. Если на позиции «Бухгалтер» запланировано 2 ставки, это число будет выводиться в каждой строке сотрудника-бухгалтера, что может путать пользователей.Всего ставок (или Занято ставок в некоторых релизах) — это реальный числовой ресурс, отражающий фактическую занятость сотрудником (например, 1.0 для штатного сотрудника или 0.5 для полставки).Создадим новое пользовательское поле, которое разграничит логику вывода информации на детальном уровне (по сотрудникам) и на уровне итогов (по подразделениям).
Разберем по шагам создание такого поля:
Занято ставок (кастомное).В поле «Выражение» (детальные записи сотрудников) укажем следующий системный ресурс:
[Всего ставок]
Это обеспечит вывод реальной доли ставки, занимаемой каждым конкретным физическим лицом в строке таблицы.
В поле «Выражение для итоговых записей» пропишем формулу, которая будет математически вычислять разницу между запланированными ставками по штатному расписанию и текущими свободными ставками:
Сумма([Количество ставок]) - Сумма([Свободно ставок])
Обратите внимание на обязательное использование агрегатной функции Сумма() в выражении для итогов. Без нее СКД не сможет корректно свернуть данные по иерархии подразделений.
После ввода формул нажмите «ОК», перейдите на вкладку «Поля и сортировки», найдите в списке доступных полей созданное нами пользовательское поле Занято ставок (кастомное) и перетащите его в правое окно (выбранные поля). Лишние стандартные поля можно отключить, сняв с них флажки.
Сформируем отчет и убедимся, что теперь на уровне каждого сотрудника отображается его личная ставка, а на уровне группировок подразделений и общего итога выводится честная разница между штатным расписанием и свободными вакансиями.
При настройке отчетов по штатному расписанию важно помнить о глобальных изменениях в учете занятости ставок, которые были внедрены разработчиками фирмы «1С» в последних версиях программы (начиная с релиза 3.1.10). Эти изменения напрямую влияют на итоговые цифры в отчетах:
Если при сверке итогов вы наблюдаете «лишние» или дробные доли ставок, рекомендуем вывести в детальные поля отчета специализированные показатели: Временно занято ставок, Ставок подработок и Ставок совмещений. Это поможет быстро локализовать причину расхождения показателей.
Если структура отчета «Штатная расстановка» кажется вам избыточной из-за обилия персональных кадровых данных, а руководство требует лаконичную и точную сводку по вакансиям, рекомендуем обратить внимание на другие стандартные отчетах в разделе «Кадры» — «Кадровые отчеты»:
1. «Заполненность штатного расписания»
Этот отчет специально оптимизирован для анализа вакантных мест. Он выводит детальную информацию по каждой позиции ШР, включая временно отсутствующих сотрудников, временно занятые ставки и свободные остатки, не перегружая таблицу фамилиями всех работающих сотрудников.
2. «Анализ занимаемых ставок»
Позволяет сгруппировать информацию по кратности занимаемых ставок. Он незаменим в организациях с большим количеством внешних и внутренних совместителей, работающих на 0.25, 0.5 или 0.75 ставки, так как помогает быстро оценить реальный дефицит физических лиц при формально заполненном штатном расписании.
Используя предложенные методики настройки пользовательских полей и управления параметрами вывода СКД, вы сможете решить любую задачу по кастомизации кадровой отчетности в «1С:Зарплата и управление персоналом 3.1» без привлечения программистов и изменения конфигурации.