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

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

В этой статье мы разберём 5 рабочих способов — от базовых до продвинутых, — а также дадим рекомендации по автоматизации процесса и интеграции с другими системами (например, с Microsoft Outlook или Google Calendar). Особое внимание уделим нюансам работы с датами, фильтрации уволенных сотрудников и настройке напоминаний.

1. Стандартный отчёт «Сотрудники организации» в 1С:ЗУП

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

Чтобы сформировать отчёт:

  1. Перейдите в раздел Кадры → Отчёты по кадровому учёту → Сотрудники организации.
  2. В настройках отчёта добавьте поле Дата рождения через кнопку Настройки → Добавить колонку.
  3. Отсортируйте данные по дате рождения, нажав на заголовок колонки.
  4. При необходимости примените фильтр по подразделениям или статусу (например, исключите уволенных).

Преимущество этого метода — скорость и отсутствие необходимости в доработках. Однако у него есть ограничения:

  • 🔹 Нельзя настроить вывод только предстоящих дней рождения (например, на ближайший месяц).
  • 🔹 Нет возможности экспортировать данные в удобный формат (например, в Excel с формулами для расчёта возраста).
  • 🔹 В некоторых версиях 1С:ЗУП 2.5 поле «Дата рождения» может отсутствовать в стандартном наборе колонок.
💡

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

2. Использование универсального отчёта «Список сотрудников»

Более гибкий вариант — универсальный отчёт Список сотрудников, который доступен в меню Кадры → Отчёты. Он позволяет не только вывести даты рождения, но и настроить группировку, фильтрацию и сортировку по любым параметрам.

Инструкция по настройке:

  1. Откройте отчёт Список сотрудников.
  2. В разделе Поля добавьте:
    • 📌 ФИО
    • 📌 Дата рождения
    • 📌 Подразделение
    • 📌 Должность
  • В разделе Фильтр установите:
    • 🔠 Дата увольнения = Пустая дата (чтобы исключить уволенных).
    • 🔠 Дата рождения ≥ [Текущая дата] и ≤ [Текущая дата + 30 дней] (для вывода ближайших дней рождения).
    • Сохраните настройки как пользовательский вариант отчёта для повторного использования.
    • Этот метод подходит для регулярного использования, так как настройки сохраняются. Однако если вам нужно выгрузить данные в Excel для дальнейшей обработки (например, для отправки поздравлений по email), придётся использовать дополнительные инструменты.

      📊 Какую конфигурацию 1С вы используете для кадрового учёта?
      1С:ЗУП 3.1
      1С:ЗУП 2.5
      1С:ERP
      1С:УТ
      Другая

      3. Запрос на языке 1С для вывода дней рождения

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

      Пример запроса для вывода сотрудников с днями рождения на ближайшие 30 дней:

      ВЫБРАТЬ
      

      Сотрудники.ФизическоеЛицо КАК Сотрудник,

      Сотрудники.ФизическоеЛицо.ФИО КАК ФИО,

      Сотрудники.ФизическоеЛицо.ДатаРождения КАК ДатаРождения,

      ВЫРАЗИТЬ(ГОД(ТЕКУЩАЯДАТА) - ГОД(Сотрудники.ФизическоеЛицо.ДатаРождения) КАК ЧИСЛО(10)) КАК Возраст,

      Сотрудники.Подразделение КАК Подразделение,

      Сотрудники.Должность КАК Должность

      ИЗ

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

      ГДЕ

      Сотрудники.ДатаУвольнения ЕСТЬ NULL

      И МЕСЯЦ(Сотрудники.ФизическоеЛицо.ДатаРождения) = МЕСЯЦ(ТЕКУЩАЯДАТА)

      И ДЕНЬ(Сотрудники.ФизическоеЛицо.ДатаРождения) >= ДЕНЬ(ТЕКУЩАЯДАТА)

      ИЛИ

      (МЕСЯЦ(Сотрудники.ФизическоеЛицо.ДатаРождения) = МЕСЯЦ(ТЕКУЩАЯДАТА + 30)

      И ДЕНЬ(Сотрудники.ФизическоеЛицо.ДатаРождения) <= ДЕНЬ(ТЕКУЩАЯДАТА + 30))

      УПОРЯДОЧИТЬ ПО

      Сотрудники.ФизическоеЛицо.ДатаРождения

      Чтобы выполнить этот запрос:

      1. Откройте Все функции → Отладка → Запрос (или Сервис → Консоль запросов в новых версиях).
      2. Вставьте текст запроса и нажмите Выполнить.
      3. Результаты можно экспортировать в Excel или сохранить как отчёт.
      Как модифицировать запрос для вывода возраста на дату рождения в текущем году

      Замените строку ВЫРАЗИТЬ(ГОД(ТЕКУЩАЯДАТА) - ГОД(Сотрудники.ФизическоеЛицо.ДатаРождения) КАК ЧИСЛО(10)) КАК Возраст на:

      ВЫРАЗИТЬ(
      

      ГОД(ТЕКУЩАЯДАТА) - ГОД(Сотрудники.ФизическоеЛицо.ДатаРождения) -

      ЕСЛИ МЕСЯЦ(ТЕКУЩАЯДАТА) < МЕСЯЦ(Сотрудники.ФизическоеЛицо.ДатаРождения)

      ИЛИ (МЕСЯЦ(ТЕКУЩАЯДАТА) = МЕСЯЦ(Сотрудники.ФизическоеЛицо.ДатаРождения)

      И ДЕНЬ(ТЕКУЩАЯДАТА) < ДЕНЬ(Сотрудники.ФизическоеЛицо.ДатаРождения))

      ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК ЧИСЛО(10)

      ) КАК ВозрастНаДР

      Это покажет, сколько лет исполнится сотруднику в день рождения в текущем году.

      Важно: В запросе используется условие для вывода дней рождения в течение 30 дней, включая текущий месяц и следующий. Если нужно изменить период (например, на 7 или 90 дней), скорректируйте значения в строках с ТЕКУЩАЯДАТА + 30.

      4. Внешняя обработка для вывода дней рождения

      Если вам требуется регулярно формировать отчёты с дополнительными возможностями (например, отправка уведомлений по email или интеграция с календарём), удобнее использовать внешнюю обработку. Готовые решения можно найти на портале 1С:ИТС или в каталоге 1С:Предприятие.

      Популярные обработки для этой задачи:

      Название обработки Возможности Совместимость
      Дни рождения сотрудников (от 1С-Рарус) Вывод списка с фотографиями, экспорт в Excel, напоминания 1С:ЗУП 3.1, 1С:ERP 2.4
      Календарь дней рождения (от Кодерлайн) Интеграция с Google Calendar, SMS-уведомления 1С:ЗУП 2.5/3.1, 1С:УТ 11
      HR-Отчёты: Дни рождения Группировка по подразделениям, аналитика по возрасту 1С:ЗУП 3.1, 1С:КА 2.4

      Чтобы подключить внешнюю обработку:

      1. Скачайте файл обработки с расширением .epf или .erf.
      2. В перейдите в Файл → Открыть → Выбрать файл обработки.
      3. Следуйте инструкциям мастера установки (обычно требуется указать период анализа и настройки фильтров).

    Убедитесь, что версия обработки совместима с вашей конфигурацией 1С|Создайте резервную копию базы данных|Проверьте наличие прав на изменение конфигурации|Прочтите отзывы других пользователей на портале 1С:ИТС-->

    ⚠️ Внимание: При использовании внешних обработок от сторонних разработчиков убедитесь, что они сертифицированы и не содержат вредоносного кода. Перед установкой проверьте репутацию разработчика на форумах (например, на Infostart или 1С:Клуб программистов).

    5. Автоматизация через регламентные задания

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

    Пошаговая настройка:

    1. Перейдите в Администрирование → Регламентные задания.
    2. Создайте новое задание с типом Выполнение обработки.
    3. Укажите обработку (например, сохранённый запрос или внешнюю обработку из предыдущего раздела).
    4. Настройте расписание (например, еженедельно по понедельникам).
    5. В параметрах укажите email для отправки результата или путь для сохранения файла.
    6. Пример настройки отправки на email:

      • 📧 В поле Адрес получателя укажите email кадровой службы.
      • 📧 В поле Тема письма введите: Список дней рождения на неделю [=Формат(ТЕКУЩАЯДАТА,"ДФ=dd.MM.yyyy")].
      • 📧 В поле Текст письма добавьте шаблон с данными из отчёта.

    ⚠️ Внимание: При настройке регламентных заданий для отправки писем убедитесь, что в правильно настроены параметры SMTP-сервера. В противном случае письма не будут отправляться, а ошибки могут оставаться незамеченными. Проверьте настройки в Администрирование → Настройки программы → Почта.

    6. Интеграция с внешними календарями (Outlook, Google Calendar)

    Для удобства можно автоматически экспортировать дни рождения сотрудников в корпоративный календарь (Microsoft Outlook, Google Calendar или Yandex Calendar). Это позволит руководителям и коллегам видеть предстоящие события в своём рабочем календаре.

    Способы интеграции:

    • 🔗 Через внешнюю обработку: Некоторые обработки (например, Календарь дней рождения от Кодерлайн) поддерживают прямой экспорт в Google Calendar по API.
    • 🔗 Через Excel: Экспортируйте данные в Excel, а затем импортируйте их в календарь через функцию Импорт событий.
    • 🔗 Через 1С:Connect: Если в компании используется 1С:Connect, можно настроить синхронизацию данных с Outlook.
    • Инструкция для экспорта в Google Calendar:

      1. Сформируйте отчёт в и экспортируйте его в Excel (файл .csv).
      2. Откройте Google Calendar, перейдите в Настройки → Импорт и экспорт.
      3. Загрузите файл .csv, указав столбцы с датами и названиями событий.
      4. Настройте повторение событий (ежегодно) и сохраните.
    💡

    Для успешной интеграции с Google Calendar убедитесь, что в экспортируемом файле даты рождения указаны в формате ГГГГ-ММ-ДД (например, 1990-05-15). В противном случае календарь может не распознать события.

    Типичные ошибки и как их избежать

    При работе с днями рождения в пользователи часто сталкиваются с типичными проблемами. Вот наиболее распространённые из них и способы их решения:

    1. В отчёте не отображаются даты рождения

    • 🔍 Причина: У пользователя нет прав на просмотр личных данных сотрудников.
    • 🔧 Решение: Настройте права в Администрирование → Пользователи → Настройки прав. Добавьте роль Кадровый учёт или Просмотр личных данных.

    2. В запросе не учитываются сотрудники с датой рождения в феврале в високосный год

    • 🔍 Причина: Ошибка в логике фильтрации по дням (например, ДЕНЬ(ДатаРождения) > 28 для февраля).
    • 🔧 Решение: Используйте функцию ДЕНЬГОДА вместо отдельных проверок на месяц и день.

    3. Внешняя обработка не работает после обновления 1С

    • 🔍 Причина: Изменения в структуре базы данных или API после обновления конфигурации.
    • 🔧 Решение: Свяжитесь с разработчиком обработки для получения актуальной версии или проверьте совместимость на сайте 1С:ИТС.
    • ⚠️ Внимание: Если вы используете нетиповые конфигурации или сильно доработанные версии , некоторые запросы и обработки могут работать некорректно. В этом случае рекомендуется обратиться к специалисту по для адаптации кода под вашу базу.

      FAQ: Частые вопросы по выводу дней рождения в 1С

      Можно ли вывести дни рождения только для определённого подразделения?

      Да, в стандартных отчётах (Список сотрудников или Сотрудники организации) добавьте фильтр по подразделению. В запросе используйте условие:

      ГДЕ Сотрудники.Подразделение = &Подразделение

      где &Подразделение — параметр, который можно задать при выполнении запроса.

      Как вывести возраст сотрудников на текущую дату?

      В запросе используйте функцию:

      ВЫРАЗИТЬ(ГОД(ТЕКУЩАЯДАТА) - ГОД(ДатаРождения) -
      

      ЕСЛИ МЕСЯЦ(ТЕКУЩАЯДАТА) < МЕСЯЦ(ДатаРождения)

      ИЛИ (МЕСЯЦ(ТЕКУЩАЯДАТА) = МЕСЯЦ(ДатаРождения)

      И ДЕНЬ(ТЕКУЩАЯДАТА) < ДЕНЬ(ДатаРождения))

      ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК ЧИСЛО(10)) КАК Возраст

      Как настроить автоматическое уведомление о днях рождения по email?

      Используйте регламентное задание с обработкой, которая формирует список дней рождения и отправляет его на email. Пример кода для отправки письма:

      Попытка
      

      Почта = Новый Почта;

      Сообщение = Новый ПочтовоеСообщение;

      Сообщение.Тема ="Дни рождения на неделю";

      Сообщение.Текст = СтрокаТаблицыДокумента(ТаблицаРезультатов);

      Сообщение.Получатели.Добавить("hr@company.ru");

      Почта.Отправить(Сообщение);

      Исключение

      ЗаписатьЛог(ОписаниеОшибки);

      КонецПопытки;

      Не забудьте настроить SMTP-сервер в параметрах .

      Можно ли вывести дни рождения в мобильном приложении 1С?

      Да, если вы используете 1С:Мобильная платформа или приложение 1С:Предприятие для Android/iOS. Для этого:

      1. Опубликуйте отчёт на веб-сервере .
      2. Настройте права доступа для мобильных пользователей.
      3. В мобильном приложении откройте раздел Отчёты и выберите сохранённый вариант.

      Ограничение: в мобильной версии могут не отображаться некоторые поля (например, фотографии сотрудников).

      Как выгрузить дни рождения в Excel с формулами для расчёта возраста?

      При экспорте в Excel добавьте в запрос колонку с датой рождения в формате ДД.ММ.ГГГГ:

      ФОРМАТ(Сотрудники.ФизическоеЛицо.ДатаРождения,"ДФ=dd.MM.yyyy") КАК ДатаРожденияExcel

      Затем в Excel используйте формулу для расчёта возраста:

      =ДОЛЯГОДА(СЕГОДНЯ;A2;1)

      где A2 — ячейка с датой рождения.