Другое · 11 мин
Как в 1С сформировать список дней рождений сотрудников
Пошаговая инструкция: как в 1С:ЗУП и других конфигурациях сформировать список дней рождений сотрудников через отчёты, СКД и запросы, с настройкой отборов и периодов.
Список дней рождений сотрудников нужен кадровикам, руководителям и отделам корпоративной культуры: по нему готовят поздравления, планируют подарки и напоминания. В типовых конфигурациях 1С дата рождения хранится в карточке физического лица, поэтому задача сводится к тому, чтобы корректно извлечь эти данные и отсортировать их по дню и месяцу, игнорируя год рождения.
В зависимости от конфигурации задача решается по-разному. В 1С:Зарплата и управление персоналом (ЗУП) есть встроенные кадровые отчёты и механизм произвольных отчётов, в 1С:Бухгалтерии список сотрудников ограничен, а в самописных или сильно доработанных решениях часто проще всего использовать консоль запросов или универсальный отчёт. Ниже разобраны все рабочие способы — от типового отчёта до собственного запроса.
Главная техническая тонкость: сортировать и фильтровать дни рождения нужно по паре «месяц-день», а не по полной дате, иначе сотрудники выстроятся по году рождения, и список потеряет смысл. Все способы ниже учитывают эту особенность.
Где 1С хранит даты рождения сотрудников
В типовых конфигурациях дата рождения относится не к сотруднику как элементу справочника «Сотрудники», а к физическому лицу. В ЗУП это справочник «Физические лица» с реквизитом «Дата рождения», который заполняется при приёме на работу вместе с ФИО, полом и ИНН. Один человек может быть связан с несколькими сотрудниками (основное место работы и совместительство), поэтому при построении списка важно решить, выводить физлиц или сотрудников.
Проверить, где лежат данные, просто: откройте карточку сотрудника, перейдите по ссылке на физическое лицо — там и находится поле «Дата рождения». Если поле пустое, сотрудник не попадёт ни в один отчёт по дням рождения, это самая частая причина «потерянных» людей в списке.
Перед формированием списка имеет смысл проверить полноту заполнения данных. В ЗУП для этого подходит отчёт «Штатная расстановка» с выведенным полем даты рождения или специализированные проверки персональных данных, если они включены в вашу релизную версию.
Способ 1: типовой отчёт в 1С:ЗУП
В 1С:Зарплата и управление персоналом список дней рождений проще всего получить через кадровые отчёты. Откройте раздел «Кадры» — «Отчеты, справки» — «Личные данные сотрудников» (в разных релизах название может отличаться: «Список сотрудников», «Дни рождения»). В некоторых версиях ЗУП есть отдельный отчёт «Дни рождения сотрудников», который сразу выводит именинников за выбранный период.
Если отдельного отчёта нет, используйте «Личные данные сотрудников»: в настройках добавьте поле «Дата рождения», задайте отбор по подразделению при необходимости и настройте сортировку. Стандартная сортировка по дате рождения выстроит людей по возрасту, поэтому дополнительно добавьте вычисляемые поля «Месяц рождения» и «День рождения» и сортируйте по ним.
Результат можно сохранить в Excel или распечатать. Для регулярного использования сохраните вариант отчёта под понятным именем, например «Дни рождения — текущий месяц», чтобы не настраивать отбор заново каждый раз.
- 1Откройте раздел «Кадры» — «Отчеты, справки».
- 2Найдите отчёт «Дни рождения» или «Личные данные сотрудников».
- 3Добавьте в настройках поле «Дата рождения» и при необходимости отбор по подразделению.
- 4Настройте сортировку по месяцу и дню рождения, а не по полной дате.
- 5Сформируйте отчёт и проверьте, что все сотрудники с заполненной датой присутствуют.
- 6Сохраните вариант отчёта для повторного использования.
Способ 2: универсальный отчёт в 1С:Бухгалтерии
В 1С:Бухгалтерии кадровый блок минимален, но даты рождения в справочнике физических лиц всё равно хранятся. Здесь удобен «Универсальный отчёт»: откройте раздел «Отчеты» — «Универсальный отчет», выберите тип «Справочник», объект «Физические лица» и добавьте в показатели поле «Дата рождения».
Ограничение универсального отчёта — он не умеет из коробки сортировать по месяцу и дню без года. Обходной путь: выгрузите список в табличный документ или Excel и отсортируйте там по вычисленной колонке, либо используйте отбор с условием на конкретный месяц, формируя список помесячно.
Если в базе ведётся и зарплата (ЗУП в составе КАМИН или комплексная автоматизация), ориентируйтесь на кадровые отчёты соответствующего подраздела — они функциональнее бухгалтерских.
Способ 3: отчёт на СКД с правильной сортировкой
Когда типовых средств не хватает — например, нужен список «именинники ближайших 14 дней» или вывод руководителей подразделений рядом с датами, — создают собственный отчёт на системе компоновки данных. Это работа для программиста или продвинутого пользователя с доступом к конфигуратору.
Ключевой момент запроса — извлечение месяца и дня через функции языка запросов МЕСЯЦ() и ДЕНЬ() и сортировка именно по этим выражениям. Для отбора «ближайшие N дней» сравнивают день и месяц с текущей датой, аккуратно обрабатывая переход через конец года, когда декабрьские даты должны соседствовать с январскими.
ВЫБРАТЬ
ФизическиеЛица.Наименование КАК ФИО,
ФизическиеЛица.ДатаРождения КАК ДатаРождения,
МЕСЯЦ(ФизическиеЛица.ДатаРождения) КАК МесяцРождения,
ДЕНЬ(ФизическиеЛица.ДатаРождения) КАК ДеньРождения
ИЗ
Справочник.ФизическиеЛица КАК ФизическиеЛица
ГДЕ
НЕ ФизическиеЛица.ПометкаУдаления
И ФизическиеЛица.ДатаРождения <> ДАТАВРЕМЯ(1,1,1)
УПОРЯДОЧИТЬ ПО
МесяцРождения, ДеньРожденияТакой запрос легко проверить в консоли запросов (для управляемых форм подойдёт консоль из состава инструментов разработчика или типовая обработка, если она есть в базе). После отладки запрос переносится в СКД, где добавляются отборы по подразделению и периоду.
Отбор именинников за конкретный период
Чаще всего нужен не полный годовой список, а выборка: кто родился в этом месяце или на этой неделе. В отчёте на СКД это реализуется параметром отбора по месяцу рождения: условие МЕСЯЦ(ДатаРождения) = &Месяц. Для недельного интервала сравнивают и месяц, и день с границами периода.
Сложное место — переход через год. Если сегодня 28 декабря, а период — 7 дней, в список должны попасть и родившиеся 2 января. Простое условие «день больше текущего» здесь не сработает: нужно либо строить условие ИЛИ для декабря и января, либо сравнивать порядковый номер дня в году с учётом сдвига.
В типовых отчётах ЗУП периодический отбор обычно уже реализован — достаточно указать даты начала и окончания в шапке отчёта. Проверьте на границе года, корректно ли отрабатывает ваш релиз: сформируйте список за период с 25 декабря по 10 января и убедитесь, что январские именинники присутствуют.
Как проверить результат
Все сотрудники с заполненной датой рождения присутствуют
Часть людей отсутствует — у них пустая дата рождения в карточке физлица
Список идёт от января к декабрю по дням
Сотрудники отсортированы по году рождения или по алфавиту
При периоде декабрь–январь видны именинники обоих месяцев
Январские дни рождения выпадают из выборки
Уволенные сотрудники исключены отбором
В списке люди, которые уже не работают
Типичные ошибки и ограничения
Самая частая ошибка — сортировка по полной дате рождения. Список получается формально корректным, но бесполезным: вверху оказываются самые старшие сотрудники. Второй типичный промах — забыть исключить уволенных. В ЗУП для этого в запросе соединяются данные с регистром кадровой истории или используется отбор «Работает на дату» в типовом отчёте.
Ещё одна проблема — дубли. Если у одного физлица несколько сотрудников (основная работа и внутреннее совместительство), человек появится в списке дважды. Решается группировкой по физическому лицу или свёрткой в запросе.
Ограничение прав: пользователь без доступа к персональным данным физических лиц не сможет сформировать такой список, и это нормально. Не запрашивайте расширение прав ради разовой задачи — попросите сформировать список того, у кого доступ уже есть.
Автоматические напоминания о днях рождения
Если список нужен регулярно, разумнее автоматизировать процесс. Варианты: регламентное задание, которое еженедельно формирует отчёт и рассылает его ответственному сотруднику по почте; рассылка отчётов — штатный механизм управляемых конфигураций, позволяющий отправлять сохранённый вариант отчёта по расписанию без доработок.
В ЗУП рассылка настраивается через «Администрирование» — «Печатные формы, отчеты и обработки» — «Рассылка отчетов». Указывается сохранённый вариант отчёта, расписание и получатель. Убедитесь, что в базе настроена учётная запись электронной почты для системных рассылок, иначе отправка не сработает.
Сравнение способов
Подходит большинству: быстро, без доработок. Ограничение — гибкость отборов зависит от релиза.
Для Бухгалтерии и простых списков. Ограничение — нет сортировки по месяцу и дню, нужна доработка в Excel.
Полная гибкость: любые периоды, напоминания, произвольные поля. Требует навыков запросов или программиста.
Автоматическая доставка списка по расписанию. Требует настроенной почты и сохранённого варианта отчёта.
FAQ
Почему сотрудник не попадает в список дней рождений?
Чаще всего у физического лица не заполнено поле «Дата рождения». Откройте карточку сотрудника, перейдите в карточку физлица и проверьте поле. Также проверьте, не исключён ли сотрудник отбором — например, отчёт показывает только работающих, а человек уволен или ещё не принят.
Как вывести список именинников только на текущий месяц?
В типовом отчёте ЗУП «Дни рождения» задайте период с первого по последнее число месяца. В собственном запросе добавьте условие МЕСЯЦ(ДатаРождения) = МЕСЯЦ(&ТекущаяДата). Сохраните такой вариант отчёта, чтобы вызывать его одной кнопкой.
Можно ли сформировать список без доступа к конфигуратору?
Да. Типовые отчёты ЗУП, универсальный отчёт в Бухгалтерии и настройка вариантов отчётов через «Ещё — Изменить вариант» доступны обычному пользователю с правами на кадровые данные. Конфигуратор нужен только для создания нового отчёта на СКД с нуля.
Как убрать из списка уволенных сотрудников?
В типовых отчётах ЗУП включите отбор по статусу «Работающие» или установите флажок исключения уволенных в настройках варианта. В собственном запросе добавьте соединение с регистром кадровой истории и условие, что на текущую дату сотрудник числится работающим.
Один человек выводится в списке дважды — что делать?
Это значит, что у физлица заведено несколько сотрудников, например основное место работы и внутреннее совместительство. Сгруппируйте данные по физическому лицу: в настройках отчёта выберите группировку по физлицу вместо сотрудника, а в запросе используйте СГРУППИРОВАТЬ ПО по ссылке на физлицо.
Можно ли настроить автоматическое напоминание о дне рождения?
Да, через механизм рассылки отчётов: сохраните вариант отчёта с отбором на ближайшие дни и настройте его отправку по расписанию на почту ответственному сотруднику. Для всплывающих напоминаний внутри 1С потребуется доработка или расширение конфигурации.
Что важно запомнить
Список дней рождений в 1С строится на данных справочника «Физические лица». В ЗУП используйте типовые кадровые отчёты, в Бухгалтерии — универсальный отчёт, для сложных выборок — запрос с сортировкой по месяцу и дню. Проверяйте полноту дат рождения, исключайте уволенных и сворачивайте дубли по совместительству.