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

Другое · 10 мин

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

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

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

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

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

Где в 1С хранится дата рождения и почему возраст нужно вычислять

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

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

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

Способ 1. Отчёт «Штатные сотрудники» с полем «Возраст»

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

Нажмите «Настройки» и перейдите в расширенный режим (кнопка «Расширенный» или соответствующий пункт меню «Ещё»). Дальше порядок такой:

Добавление возраста в отчёт
  1. 1
    Откройте отчёт «Штатные сотрудники» и нажмите «Настройки» → расширенный режим
  2. 2
    Перейдите на вкладку «Пользовательские поля» и нажмите «Добавить» → «Новое поле выражение»
  3. 3
    Задайте заголовок «Возраст» и формулу: РазностьДат(ДатаРождения, ТекущаяДата(), "Год")
  4. 4
    На вкладке «Выбранные поля» добавьте поле «Возраст» в список колонок рядом с ФИО
  5. 5
    Нажмите «Закрыть и сформировать» и проверьте результат

Если формула на языке выражений СКД недоступна в вашем релизе, используйте вариант с функцией Год: Год(ТекущаяДата()) - Год(ДатаРождения). Он менее точен (не учитывает, был ли день рождения в этом году), но для статистики часто достаточен.

Готовую настройку сохраните через «Ещё» → «Сохранить вариант отчёта», назвав, например, «Сотрудники с возрастом». Тогда список будет доступен в один клик всем, кому вы откроете доступ к варианту.

Способ 2. Универсальный отчёт по физическим лицам

Если нужны не только штатные, но и уволенные сотрудники, либо вы работаете в 1С:Бухгалтерии, где кадровые отчёты ограничены, подойдёт «Универсальный отчёт» (раздел «Отчёты» или «Администрирование» → «Печатные формы, отчёты и обработки»).

Постройте отчёт по справочнику «Физические лица» с выводом полей «Наименование» (ФИО) и «Дата рождения». Далее два варианта: выгрузить список в Excel и добавить там формулу возраста, либо открыть настройки отчёта и добавить пользовательское поле с той же формулой разности дат, что описана выше.

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

Сравнение способов

Отчёт «Штатные сотрудники»

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

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

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

Выгрузка в Excel

Быстро для разовой задачи, возраст считается формулой Excel. Ограничение: данные устаревают, расчёт не в 1С.

Свой отчёт на СКД

Полный контроль над формулой и составом полей. Ограничение: требует навыков разработки или помощи программиста.

Способ 3. Выгрузка в Excel и расчёт возраста формулой

Для разовой задачи (например, список к юбилею) часто быстрее выгрузить данные и посчитать возраст в Excel. Сформируйте любой список сотрудников с датой рождения, сохраните его в Excel через кнопку «Сохранить» или Ctrl+S.

В Excel добавьте столбец с формулой =РАЗНДАТ(B2;СЕГОДНЯ();"Y"), где B2 — ячейка с датой рождения. Функция РАЗНДАТ корректно считает полные года с учётом того, наступил ли день рождения в текущем году. Протяните формулу на весь список и при необходимости отсортируйте по возрасту.

Учтите риск: выгруженный файл с персональными данными (ФИО + дата рождения) подпадает под требования о защите персональных данных. Храните файл в защищённой папке, не пересылайте по открытым каналам и удаляйте после использования, если он больше не нужен.

Способ 4. Свой отчёт на СКД с точным расчётом возраста

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

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

РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ДатаОтчета, ГОД) КАК Возраст

Точный расчёт «с учётом дня рождения» в запросе делается через ВЫБОР: если день и месяц рождения ещё не наступили в текущем году — вычитаем единицу. В СКД это проще реализовать вычисляемым полем на языке 1С в событии «ПриКомпоновкеРезультата» либо формулой языка выражений:

ВЫБОР

КОГДА МЕСЯЦ(&ТекущаяДата) 100 + ДЕНЬ(&ТекущаяДата) >= МЕСЯЦ(ДатаРождения) 100 + ДЕНЬ(ДатаРождения)

ТОГДА ГОД(&ТекущаяДата) - ГОД(ДатаРождения)

ИНАЧЕ ГОД(&ТекущаяДата) - ГОД(ДатаРождения) - 1

КОНЕЦ

Готовый внешний отчёт подключается через «Дополнительные отчеты и обработки» и не требует изменения конфигурации — это безопасно для обновлений.

Проверка результата и типичные ошибки

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

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

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

Возраст сотрудника с недавним днём рождения
Норма

Совпадает с расчётом вручную от даты рождения

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

Завышен на год — формула не учитывает день и месяц

Строки без даты рождения
Норма

Поле возраста пустое, сотрудников мало или нет

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

Много пустых значений — не заполнены карточки физлиц

Состав списка
Норма

Только работающие сотрудники (если это требовалось)

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

В списке уволенные или дубликаты физлиц

Дата расчёта
Норма

Возраст посчитан на нужную дату (текущую или заданную)

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

Возраст «на сегодня», хотя нужен на конец года

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

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

Частые вопросы

Можно ли вывести возраст прямо в списке справочника «Сотрудники»?

Нет, список справочника показывает только хранимые реквизиты, а возраст не хранится. Используйте отчёт с вычисляемым полем — это штатный и правильный путь.

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

В формуле вычисляемого поля замените ТекущаяДата() на параметр, например &ДатаОтчета, и задайте значение параметра в настройках отчёта. В Excel вместо СЕГОДНЯ() укажите ссылку на ячейку с нужной датой.

Почему в отчёте у некоторых сотрудников возраст пустой?

Не заполнена дата рождения в карточке физического лица. Откройте сотрудника, перейдите в личные данные и внесите дату рождения, затем пересформируйте отчёт.

Как сделать список сотрудников по возрастным группам (до 30, 30–50, старше 50)?

В настройках отчёта добавьте ещё одно пользовательское поле с формулой ВЫБОР, которая по значению возраста возвращает название группы, и сгруппируйте отчёт по этому полю. Альтернатива — выгрузить в Excel и использовать сводную таблицу с группировкой.

Нужны ли права администратора для добавления поля «Возраст»?

Нет. Настройка пользовательских полей в типовом отчёте доступна обычному пользователю с правами на кадровые отчёты. Права программиста нужны только для создания собственного внешнего отчёта на СКД.

Работает ли этот способ в 1С:Бухгалтерии?

Да, но набор кадровых отчётов там меньше. Используйте «Универсальный отчёт» по справочнику «Сотрудники» с полем «Физическое лицо.Дата рождения» и пользовательским полем возраста либо выгрузку в Excel.

Итог

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

Возраст в 1С всегда вычисляется из даты рождения, а не хранится. Быстрее всего получить список через отчёт «Штатные сотрудники» с пользовательским полем РазностьДат(ДатаРождения, ТекущаяДата(), "Год"). Для точности используйте формулу с учётом дня и месяца, проверяйте незаполненные даты рождения и соблюдайте режим защиты персональных данных при выгрузках.