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

Другое · 11 мин

Как в 1С сформировать список дней рождений сотрудников

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

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

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

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

Где 1С хранит даты рождения сотрудников

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

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

Перед формированием списка имеет смысл проверить полноту заполнения данных. В ЗУП для этого подходит отчёт «Штатная расстановка» с выведенным полем даты рождения или специализированные проверки персональных данных, если они включены в вашу релизную версию.

Способ 1: типовой отчёт в 1С:ЗУП

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

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

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

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

Способ 2: универсальный отчёт в 1С:Бухгалтерии

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

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

Если в базе ведётся и зарплата (ЗУП в составе КАМИН или комплексная автоматизация), ориентируйтесь на кадровые отчёты соответствующего подраздела — они функциональнее бухгалтерских.

Способ 3: отчёт на СКД с правильной сортировкой

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

Ключевой момент запроса — извлечение месяца и дня через функции языка запросов МЕСЯЦ() и ДЕНЬ() и сортировка именно по этим выражениям. Для отбора «ближайшие N дней» сравнивают день и месяц с текущей датой, аккуратно обрабатывая переход через конец года, когда декабрьские даты должны соседствовать с январскими.

bsl
ВЫБРАТЬ
	ФизическиеЛица.Наименование КАК ФИО,
	ФизическиеЛица.ДатаРождения КАК ДатаРождения,
	МЕСЯЦ(ФизическиеЛица.ДатаРождения) КАК МесяцРождения,
	ДЕНЬ(ФизическиеЛица.ДатаРождения) КАК ДеньРождения
ИЗ
	Справочник.ФизическиеЛица КАК ФизическиеЛица
ГДЕ
	НЕ ФизическиеЛица.ПометкаУдаления
	И ФизическиеЛица.ДатаРождения <> ДАТАВРЕМЯ(1,1,1)
УПОРЯДОЧИТЬ ПО
	МесяцРождения, ДеньРождения

Такой запрос легко проверить в консоли запросов (для управляемых форм подойдёт консоль из состава инструментов разработчика или типовая обработка, если она есть в базе). После отладки запрос переносится в СКД, где добавляются отборы по подразделению и периоду.

Отбор именинников за конкретный период

Чаще всего нужен не полный годовой список, а выборка: кто родился в этом месяце или на этой неделе. В отчёте на СКД это реализуется параметром отбора по месяцу рождения: условие МЕСЯЦ(ДатаРождения) = &Месяц. Для недельного интервала сравнивают и месяц, и день с границами периода.

Сложное место — переход через год. Если сегодня 28 декабря, а период — 7 дней, в список должны попасть и родившиеся 2 января. Простое условие «день больше текущего» здесь не сработает: нужно либо строить условие ИЛИ для декабря и января, либо сравнивать порядковый номер дня в году с учётом сдвига.

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

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

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

Полнота списка
Норма

Все сотрудники с заполненной датой рождения присутствуют

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

Часть людей отсутствует — у них пустая дата рождения в карточке физлица

Порядок сортировки
Норма

Список идёт от января к декабрю по дням

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

Сотрудники отсортированы по году рождения или по алфавиту

Переход через год
Норма

При периоде декабрь–январь видны именинники обоих месяцев

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

Январские дни рождения выпадают из выборки

Уволенные
Норма

Уволенные сотрудники исключены отбором

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

В списке люди, которые уже не работают

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

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

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

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

Типичные ошибки
01
Сортировка по полной дате рождения — список выстраивается по возрасту, а не по календарю.
02
Не исключены уволенные сотрудники — в список попадают бывшие работники.
03
Дубли из-за совместительства — один человек выводится несколько раз.
04
Игнорирование пустых дат рождения — часть сотрудников молча выпадает из отчёта.
05
Некорректный отбор на стыке года — январские именинники теряются при периоде с конца декабря.

Автоматические напоминания о днях рождения

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

В ЗУП рассылка настраивается через «Администрирование» — «Печатные формы, отчеты и обработки» — «Рассылка отчетов». Указывается сохранённый вариант отчёта, расписание и получатель. Убедитесь, что в базе настроена учётная запись электронной почты для системных рассылок, иначе отправка не сработает.

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

Типовой отчёт ЗУП

Подходит большинству: быстро, без доработок. Ограничение — гибкость отборов зависит от релиза.

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

Для Бухгалтерии и простых списков. Ограничение — нет сортировки по месяцу и дню, нужна доработка в Excel.

Запрос или СКД

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

Рассылка отчётов

Автоматическая доставка списка по расписанию. Требует настроенной почты и сохранённого варианта отчёта.

FAQ

Почему сотрудник не попадает в список дней рождений?

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

Как вывести список именинников только на текущий месяц?

В типовом отчёте ЗУП «Дни рождения» задайте период с первого по последнее число месяца. В собственном запросе добавьте условие МЕСЯЦ(ДатаРождения) = МЕСЯЦ(&ТекущаяДата). Сохраните такой вариант отчёта, чтобы вызывать его одной кнопкой.

Можно ли сформировать список без доступа к конфигуратору?

Да. Типовые отчёты ЗУП, универсальный отчёт в Бухгалтерии и настройка вариантов отчётов через «Ещё — Изменить вариант» доступны обычному пользователю с правами на кадровые данные. Конфигуратор нужен только для создания нового отчёта на СКД с нуля.

Как убрать из списка уволенных сотрудников?

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

Один человек выводится в списке дважды — что делать?

Это значит, что у физлица заведено несколько сотрудников, например основное место работы и внутреннее совместительство. Сгруппируйте данные по физическому лицу: в настройках отчёта выберите группировку по физлицу вместо сотрудника, а в запросе используйте СГРУППИРОВАТЬ ПО по ссылке на физлицо.

Можно ли настроить автоматическое напоминание о дне рождения?

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

Итог

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

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