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