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

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

В этой статье мы рассмотрим несколько проверенных способов получения данных. Мы начнем с использования стандартного функционала, который доступен большинству пользователей без прав администратора, и перейдем к более сложным методам для аналитиков.

📊 Какой конфигурацией 1С вы пользуетесь чаще всего?
ЗУП 3.1
Бухгалтерия 3.0
Управление торговлей
Самописная конфигурация

Использование стандартных отчетов в ЗУП 3.1

В современных версиях конфигурации Зарплата и управление персоналом (ред. 3.1) функционал отчетности значительно расширен. В разделе Отчеты можно найти универсальные инструменты для анализа кадров. Однако, далеко не каждый готовый отчет сразу показывает столбец с возрастом.

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

💡

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

Алгоритм действий для получения данных через стандартный интерфейс выглядит следующим образом:

  • 📂 Перейдите в меню Отчеты и выберите «Список сотрудников организации».
  • ⚙️ Нажмите кнопку Настройки в верхней панели отчета.
  • ➕ В структуре отчета добавьте новую колонку и выберите поле «Дата рождения».
  • 🧮 Используйте функцию вычисления разницы между текущей датой и датой рождения для получения лет.

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

Настройка вычисляемых полей в СКД

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

В окне настроек отчета перейдите на вкладку Поля и сортировки. Здесь вы можете добавить новое поле. Имя поля может быть произвольным, например, ТекущийВозраст. Выражение для этого поля должно использовать встроенные функции даты.

⚠️ Внимание: Формула расчета возраста должна учитывать месяц и день. Простое вычитание годов (ГОД(СЕГОДНЯ()) - ГОД(ДатаРождения)) даст ошибку в 1 год для сотрудников, у которых день рождения еще не наступил в текущем году.

Пример корректного выражения для поля в СКД может выглядеть сложно для неподготовленного пользователя, но оно гарантирует точность:

РАЗНОСТЬДАТ(ДатаРождения, &ДатаНачалаПериода, "ГОД") - ЕСЛИ(МЕСЯЦ(ДатаРождения) > МЕСЯЦ(&ДатаНачалаПериода) ИЛИ (МЕСЯЦ(ДатаРождения) = МЕСЯЦ(&ДатаНачалаПериода) И ДЕНЬ(ДатаРождения) > ДЕНЬ(&ДатаНачалаПериода)), 1, 0)

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

☑️ Проверка настроек отчета

Выполнено: 0 / 4

Формирование списка через консоль запросов

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

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

Ниже приведен пример текста запроса, который можно вставить в консоль:

ВЫБРАТЬ

Сотрудники.Ссылка КАК Сотрудник,

Сотрудники.Наименование КАК ФИО,

Сотрудники.ДатаРождения КАК ДатаРождения,

РАЗНОСТЬДАТ(СОЗДАТЬДАТУ(ГОД(ТЕКУЩАЯДАТА()), МЕСЯЦ(СОТРУДНИКИ.ДАТАРОЖДЕНИЯ), ДЕНЬ(СОТРУДНИКИ.ДАТАРОЖДЕНИЯ)), ТЕКУЩАЯДАТА(), "ДЕНЬ") КАК ДнейДоДР

ИЗ

Справочник.Сотрудники КАК Сотрудники

ГДЕ

Сотрудники.ЭтоГруппа = ЛОЖЬ

Обратите внимание, что в данном примере мы рассчитываем количество дней до дня рождения, что часто даже полезнее, чем просто возраст. Для расчета полных лет в консоли также можно использовать функцию РАЗНОСТЬДАТ с параметром "ГОД".

Особенности работы с датами в запросах

Функция РАЗНОСТЬДАТ в 1С работает корректно с високосными годами. Если день рождения приходится на 29 февраля, система обычно считает его 1 марта в невисокосные годы, но лучше явно проверять логику в вашей версии платформы.

Анализ возрастных групп и статистика

Получив список сотрудников с возрастом, логично перейти к анализу данных. Руководству компании часто требуется не поименный список, а сводная статистика: сколько сотрудников моложе 30 лет, сколько предпенсионного возраста и так далее.

Для группировки данных можно использовать сводные таблицы в Excel или настроить группировки непосредственно в отчете 1С. В настройках отчета добавьте группировку по вычисляемому полю возраста с шагом, например, 5 или 10 лет.

Возрастная группа Количество сотрудников Доля от штата (%) Средний стаж в группе
до 25 лет 12 5.4% 1.2 года
26 - 35 лет 45 20.1% 4.5 года
36 - 50 лет 98 43.9% 8.7 года
старше 50 лет 68 30.6% 15.3 года

Такая таблица дает наглядное представление о структуре коллектива. Кадровый резерв часто формируется именно на основе таких данных, выделяя наиболее перспективные возрастные категории.

При анализе стоит учитывать специфику вашей отрасли. В IT-секторе средний возраст может быть ниже, тогда как на производственных предприятиях доля опытных сотрудников старше 45 лет часто выше. Эти данные помогают планировать обучение и социальную политику.

Автоматизация вывода поздравлений

Список сотрудников с датами рождения и возрастом — это основа для автоматизации поздравлений. В 1С можно настроить рассылку писем или вывод сообщений при входе в систему для именинников текущей недели или месяца.

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

⚠️ Внимание: При настройке автоматических поздравлений убедитесь, что в карточках сотрудников заполнены адреса электронной почты. Отсутствие контактов приведет к ошибке отправки.

Вы можете создать отдельный отчет «Именинники месяца», который будет выводить не только возраст, но и стаж работы в компании. Это добавляет персонализации в поздравления от руководства.

💡

Автоматизация поздравлений повышает лояльность сотрудников, но требует актуальности данных в карточках персонала.

Частые ошибки при расчете возраста

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

Еще одна проблема связана с timezone и временем. Если дата рождения сохранена с временем (например, 00:00:00), а текущая дата имеет другое время, функция разницы дат может округлить результат неправильно. Всегда приводите даты к началу дня при сравнении.

Также стоит проверять заполненность поля ДатаРождения. В старых базах данных у некоторых сотрудников это поле может быть пустым. Такие записи должны либо исключаться из отчета, либо помечаться специальным символом, чтобы не искажать статистику.

  • ❌ Ошибка: Использование простого вычитания годов без проверки месяца и дня.
  • ✅ Решение: Применение функции РАЗНОСТЬДАТ или сложной формулы с ЕСЛИ.
  • ⚠️ Риск: Игнорирование сотрудников без заполненной даты рождения приводит к потере данных.

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

Как рассчитать возраст на конкретную дату в прошлом?

Для этого в формуле расчета вместо функции ТЕКУЩАЯДАТА() необходимо подставить параметр даты или конкретное значение даты. В СКД это делается через использование предопределенного параметра периода отчета.

Можно ли скрыть возраст сотрудников младше 18 лет?

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

Почему возраст считается неверно для сотрудников 1900 года рождения?

В 1С существует ограничение на минимальную дату (обычно 01.01.1900). Если дата рождения введена некорректно или равна нулевой дате, функции работы с временем могут возвращать некорректные значения. Проверьте карточки таких сотрудников.

Как экспортировать список с возрастом в Excel?

После формирования отчета нажмите кнопку Сохранить или Вывести список и выберите формат Табличный документ или Лист Excel. Все вычисленные колонки, включая возраст, будут перенесены в файл.

Влияет ли обновление платформы 1С на расчет возраста?

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