К статье
Практический материал

Другое · 11 мин

Как посчитать средний возраст работников в 1С:ЗУП

Как посчитать средний возраст сотрудников в 1С:ЗУП: готовые отчёты, настройка варианта в «Все отчёты», универсальный отчёт и проверка корректности данных о датах рождения.

Средний возраст работников — показатель, который регулярно запрашивают руководство, кадровые службы и статистические органы. В 1С:ЗУП (редакция 3.1) нет отдельной кнопки «средний возраст», но данные о датах рождения хранятся в карточке каждого сотрудника, поэтому показатель можно получить несколькими способами: через штатные кадровые отчёты с настройкой, через универсальный отчёт или через механизм «Все отчёты» с вариантом на СКД.

Выбор способа зависит от задачи: нужен разовый расчёт на дату, регулярный отчёт с группировкой по подразделениям или показатель для выгрузки во внешнюю систему. Ниже разобраны рабочие варианты с конкретными шагами, контрольными точками и ограничениями каждого метода.

Что нужно проверить перед расчётом

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

Откройте отчёт «Сотрудники без даты рождения» — в типовой поставке такого отдельного отчёта может не быть, поэтому проще воспользоваться списком «Физические лица» (раздел «Кадры» → «Физические лица») и отсортировать по колонке «Дата рождения». Пустые значения окажутся в начале или в конце списка. Заполните недостающие даты по данным паспортов.

Второй момент — определите контингент: средний возраст можно считать по всем работающим на дату, только по штатным (без совместителей), по конкретному подразделению или по списку организаций, если в базе ведётся несколько юрлиц. От ответа зависит отбор в отчёте.

Способ 1: универсальный отчёт по справочнику «Сотрудники»

Универсальный отчёт — самый гибкий инструмент для разового расчёта. Он доступен пользователям с правами на просмотр отчётов по данным информационной базы (обычно это кадровик-расчётчик или администратор).

Откройте «Отчёты» → «Универсальный отчёт». В настройках укажите: тип данных — «Справочник», объект — «Сотрудники». Установите отбор: «Работает» равно «Да» (или по полю «Дата увольнения» — не заполнено), при необходимости добавьте отбор по организации и подразделению.

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

Порядок действий в универсальном отчёте
  1. 1
    Откройте «Отчёты» → «Универсальный отчёт»
  2. 2
    Выберите справочник «Сотрудники» и задайте отбор по работающим
  3. 3
    Добавьте поле «Дата рождения» через физическое лицо
  4. 4
    Настройте вычисляемое поле возраста в полных годах
  5. 5
    В ресурсах укажите агрегат «Среднее» по полю возраста
  6. 6
    Сформируйте отчёт и сверьте количество строк со списочной численностью

Если в вашей версии настройка произвольных полей в универсальном отчёте ограничена, используйте альтернативу: выведите список сотрудников с датами рождения, выгрузите в табличный документ и посчитайте среднее формулой в Excel. Это приемлемо для разовой задачи, но не для регулярной отчётности.

Способ 2: настройка варианта кадрового отчёта

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

Откройте отчёт, нажмите «Настройки» → «Расширенные настройки». На закладке «Поля» добавьте поле «Дата рождения» из данных физического лица. Чтобы получить именно возраст, добавьте пользовательское поле с выражением: разница между текущей датой и датой рождения, делённая на 365,25, с округлением вниз. В пользовательских полях СКД доступны функции языка выражений, включая работу с датами.

Затем на закладке «Ресурсы» добавьте ресурс по вычисляемому полю с агрегатной функцией «Среднее», а в структуре отчёта оставьте только общий итог — получите одну цифру. Сохраните настройку как отдельный вариант отчёта («Сохранить вариант»), чтобы не настраивать заново.

1c
// Выражение пользовательского поля СКД: возраст в полных годах
Выбор
  Когда ДатаРождения = ДатаВремя(1,1,1)
    Тогда 0
  Иначе РазностьДат(ДатаРождения, &ТекущаяДата, "ГОД")
Конец

Способ 3: расчёт через группировку по подразделениям

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

Обратите внимание: при группировке среднее считается как среднее арифметическое возрастов сотрудников внутри группы, а не среднее из средних. Если в иерархии подразделений есть вложенность, проверьте, что итоги по родительским подразделениям считаются по всем вложенным сотрудникам, иначе цифры исказятся.

Для совместителей решите заранее, как их учитывать. Если сотрудник занимает две ставки в разных подразделениях, он попадёт в обе группировки и увеличит выборку. Для «честной» численности добавьте отбор по виду занятости — только основное место работы.

Сравнение способов расчёта

Универсальный отчёт

Подходит для разового расчёта и выгрузки; требует ручной настройки вычисляемого поля

Вариант кадрового отчёта на СКД

Оптимален для регулярного использования: один раз настроил — сохранил вариант; нужны базовые навыки СКД

Выгрузка в Excel

Самый простой путь без настроек, но данные приходится обновлять вручную при каждом пересчёте

Доработка конфигурации

Оправдана, если показатель нужен в регламентных отчётах и на рабочем столе; требует разработчика и усложняет обновление

Как проверить корректность результата

После получения цифры выполните три контрольные проверки. Первая — сверьте количество строк в отчёте со списочной численностью на ту же дату (отчёт «Численность сотрудников» или «Списочный состав»). Если количества не совпадают, в выборку попали уволенные, либо потерялись работающие.

Вторая проверка — выборочный ручной расчёт. Возьмите 3–5 сотрудников, посчитайте их возраст в полных годах на дату отчёта и сравните с тем, что вывела программа. Расхождение в один год обычно означает, что выражение считает разницу в годах без учёта того, наступил ли день рождения в текущем году.

Третья проверка — граничные значения. Если в отчёте появились сотрудники с возрастом 0 или старше 100 лет, это признак пустых или ошибочных дат рождения. Отфильтруйте такие записи и исправьте данные в карточках физических лиц.

Контрольные точки

Как проверить результат

Количество строк в отчёте
Норма

Совпадает со списочной численностью на дату

Тревожный признак

Меньше или больше — проверяйте отбор по уволенным и совместителям

Минимальный и максимальный возраст
Норма

Все значения в диапазоне примерно 16–75 лет

Тревожный признак

Нули или значения старше 100 — пустые или ошибочные даты рождения

Среднее значение
Норма

Правдоподобно для отрасли и не скачет от месяца к месяцу больше чем на 1–2 года

Тревожный признак

Резкие скачки — изменился состав выборки или слетела настройка отбора

Типичные ошибки и ограничения

Самая частая ошибка — расчёт возраста простым вычитанием годов. Если сотрудник родился в декабре 1990 года, а отчёт формируется в январе, разница годов завысит возраст на единицу у всех, у кого день рождения ещё не наступил. Используйте функцию разности дат с параметром «ГОД» или проверку наступления дня рождения.

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

Третья ошибка — забытый отбор по дате. Кадровые отчёты формируются на дату или за период; если период не задан, часть отчётов берёт данные на текущую дату сеанса. При подготовке показателя «на конец квартала» обязательно зафиксируйте дату в параметрах.

Типичные ошибки
01
Считать возраст вычитанием годов без учёта наступления дня рождения — погрешность до года у части сотрудников
02
Считать среднее по записям справочника «Сотрудники» вместо физических лиц — совместители искажают результат
03
Не заполнить даты рождения у части сотрудников — среднее занижается или выборка неполная
04
Не сохранить вариант отчёта — при следующем расчёте настройки придётся повторять и есть риск получить другую цифру

Когда нужна доработка и какие есть альтернативы

Настроек СКД достаточно в большинстве случаев. Доработка конфигурации оправдана, если показатель нужен автоматически: в регламентированной статистической отчётности, в показателях KPI на начальной странице, в ежемесячном пакете отчётов для руководства. В этом случае разработчик добавляет отдельный отчёт или расширение — предпочтителен вариант через расширение, чтобы не усложнять обновления.

Альтернатива для организаций с несколькими базами — консолидация данных в Excel или BI-инструменте: из каждой базы выгружается список с датами рождения, среднее считается централизованно. Это снимает ограничение «одна база — один отчёт».

Маршрут решения

Как выбрать действие

Нужна разовая цифра для ответа руководствуИспользуйте универсальный отчёт или выгрузку в Excel
Показатель нужен регулярно, например ежеквартальноНастройте и сохраните вариант кадрового отчёта на СКД
Средний возраст входит в регламентный пакет отчётностиЗакажите доработку через расширение конфигурации
Данные разнесены по нескольким базамВыгружайте списки с датами рождения и консолидируйте расчёт вне 1С

FAQ

Почему в отчёте средний возраст отличается от посчитанного вручную?

Чаще всего причина в способе вычисления возраста: программа может считать полные годы на дату отчёта, а при ручном расчёте берётся простая разница годов. Вторая причина — разный состав выборки: проверьте отборы по уволенным, совместителям и организациям.

Можно ли посчитать средний возраст на прошлую дату?

Да. Установите в параметрах отчёта нужную дату, а в выражении возраста используйте её вместо текущей даты. Тогда программа рассчитает возраст каждого сотрудника именно на указанный момент, а выборку ограничит работавшими на ту дату.

У части сотрудников не заполнена дата рождения — что делать?

Сначала заполните данные по паспортам в карточках физических лиц: раздел «Кадры» → «Физические лица». Если восстановить данные быстро невозможно, добавьте в отчёт отбор «Дата рождения заполнена», но учитывайте, что среднее будет посчитано по неполной выборке.

Как исключить совместителей из расчёта?

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

Нужны ли права администратора для настройки такого отчёта?

Полные права не обязательны: достаточно прав на просмотр кадровых отчётов и сохранение вариантов отчётов. Однако универсальный отчёт в некоторых настройках прав доступен только пользователям с расширенным доступом к данным информационной базы.

Можно ли вывести средний возраст в разрезе должностей или пола?

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

Итог

Что важно запомнить

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