Задача вывести список сотрудников с указанием дней рождения в 1С возникает у кадровых специалистов, бухгалтеров и руководителей регулярно — будь то подготовка к корпоративным мероприятиям, планирование поздравлений или анализ текучести кадров. В зависимости от конфигурации (1С:ЗУП, 1С:ERP, 1С:УТ) и версии платформы способы решения отличаются: от простых отчётов до написания собственных запросов на языке 1С:Предприятие.
Многие пользователи ошибочно полагают, что для этой задачи обязательно нужен программист или покупка дополнительных отчётов. На деле же в большинстве типовых конфигураций уже есть готовые инструменты — их просто нужно правильно настроить. А если стандартных возможностей недостаточно, то даже без глубоких знаний в программировании можно создать эффективное решение с помощью конструктора запросов или внешних обработок.
В этой статье мы разберём 5 рабочих способов — от базовых до продвинутых, — а также дадим рекомендации по автоматизации процесса и интеграции с другими системами (например, с Microsoft Outlook или Google Calendar). Особое внимание уделим нюансам работы с датами, фильтрации уволенных сотрудников и настройке напоминаний.
1. Стандартный отчёт «Сотрудники организации» в 1С:ЗУП
Самый простой способ — использовать встроенный отчёт Сотрудники организации, который есть в большинстве конфигураций на базе 1С:Зарплата и Управление Персоналом. Он позволяет быстро получить список сотрудников с основными данными, включая даты рождения.
Чтобы сформировать отчёт:
- Перейдите в раздел
Кадры → Отчёты по кадровому учёту → Сотрудники организации. - В настройках отчёта добавьте поле
Дата рождениячерез кнопкуНастройки → Добавить колонку. - Отсортируйте данные по дате рождения, нажав на заголовок колонки.
- При необходимости примените фильтр по подразделениям или статусу (например, исключите уволенных).
Преимущество этого метода — скорость и отсутствие необходимости в доработках. Однако у него есть ограничения:
- 🔹 Нельзя настроить вывод только предстоящих дней рождения (например, на ближайший месяц).
- 🔹 Нет возможности экспортировать данные в удобный формат (например, в Excel с формулами для расчёта возраста).
- 🔹 В некоторых версиях 1С:ЗУП 2.5 поле «Дата рождения» может отсутствовать в стандартном наборе колонок.
Если в вашей версии 1С поле"Дата рождения" не отображается в отчёте, проверьте права доступа пользователя — возможно, у него нет прав на просмотр личных данных сотрудников.
2. Использование универсального отчёта «Список сотрудников»
Более гибкий вариант — универсальный отчёт Список сотрудников, который доступен в меню Кадры → Отчёты. Он позволяет не только вывести даты рождения, но и настроить группировку, фильтрацию и сортировку по любым параметрам.
Инструкция по настройке:
- Откройте отчёт
Список сотрудников. - В разделе
Полядобавьте:- 📌
ФИО - 📌
Дата рождения - 📌
Подразделение - 📌
Должность
- 📌
Фильтр установите:
- 🔠
Дата увольнения = Пустая дата(чтобы исключить уволенных). - 🔠
Дата рождения ≥ [Текущая дата]и≤ [Текущая дата + 30 дней](для вывода ближайших дней рождения).
Этот метод подходит для регулярного использования, так как настройки сохраняются. Однако если вам нужно выгрузить данные в Excel для дальнейшей обработки (например, для отправки поздравлений по email), придётся использовать дополнительные инструменты.
3. Запрос на языке 1С для вывода дней рождения
Если стандартные отчёты не покрывают ваши потребности (например, нужно вывести дни рождения с учётом возраста или добавить дополнительные поля), можно написать собственный запрос на языке 1С:Предприятие. Этот способ требует минимальных знаний в программировании, но даёт максимальную гибкость.
Пример запроса для вывода сотрудников с днями рождения на ближайшие 30 дней:
ВЫБРАТЬ
Сотрудники.ФизическоеЛицо КАК Сотрудник,
Сотрудники.ФизическоеЛицо.ФИО КАК ФИО,
Сотрудники.ФизическоеЛицо.ДатаРождения КАК ДатаРождения,
ВЫРАЗИТЬ(ГОД(ТЕКУЩАЯДАТА) - ГОД(Сотрудники.ФизическоеЛицо.ДатаРождения) КАК ЧИСЛО(10)) КАК Возраст,
Сотрудники.Подразделение КАК Подразделение,
Сотрудники.Должность КАК Должность
ИЗ
Справочник.Сотрудники КАК Сотрудники
ГДЕ
Сотрудники.ДатаУвольнения ЕСТЬ NULL
И МЕСЯЦ(Сотрудники.ФизическоеЛицо.ДатаРождения) = МЕСЯЦ(ТЕКУЩАЯДАТА)
И ДЕНЬ(Сотрудники.ФизическоеЛицо.ДатаРождения) >= ДЕНЬ(ТЕКУЩАЯДАТА)
ИЛИ
(МЕСЯЦ(Сотрудники.ФизическоеЛицо.ДатаРождения) = МЕСЯЦ(ТЕКУЩАЯДАТА + 30)
И ДЕНЬ(Сотрудники.ФизическоеЛицо.ДатаРождения) <= ДЕНЬ(ТЕКУЩАЯДАТА + 30))
УПОРЯДОЧИТЬ ПО
Сотрудники.ФизическоеЛицо.ДатаРождения
Чтобы выполнить этот запрос:
- Откройте
Все функции → Отладка → Запрос(илиСервис → Консоль запросовв новых версиях). - Вставьте текст запроса и нажмите
Выполнить. - Результаты можно экспортировать в 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 |
Чтобы подключить внешнюю обработку:
- Скачайте файл обработки с расширением
.epfили.erf. - В 1С перейдите в
Файл → Открыть → Выбрать файл обработки. - Следуйте инструкциям мастера установки (обычно требуется указать период анализа и настройки фильтров).
- Перейдите в
Администрирование → Регламентные задания. - Создайте новое задание с типом
Выполнение обработки. - Укажите обработку (например, сохранённый запрос или внешнюю обработку из предыдущего раздела).
- Настройте расписание (например, еженедельно по понедельникам).
- В параметрах укажите email для отправки результата или путь для сохранения файла.
- 📧 В поле
Адрес получателяукажите email кадровой службы. - 📧 В поле
Тема письмавведите:Список дней рождения на неделю [=Формат(ТЕКУЩАЯДАТА,"ДФ=dd.MM.yyyy")]. - 📧 В поле
Текст письмадобавьте шаблон с данными из отчёта. - 🔗 Через внешнюю обработку: Некоторые обработки (например, Календарь дней рождения от Кодерлайн) поддерживают прямой экспорт в Google Calendar по API.
- 🔗 Через Excel: Экспортируйте данные в Excel, а затем импортируйте их в календарь через функцию
Импорт событий. - 🔗 Через 1С:Connect: Если в компании используется 1С:Connect, можно настроить синхронизацию данных с Outlook.
Убедитесь, что версия обработки совместима с вашей конфигурацией 1С|Создайте резервную копию базы данных|Проверьте наличие прав на изменение конфигурации|Прочтите отзывы других пользователей на портале 1С:ИТС-->
⚠️ Внимание: При использовании внешних обработок от сторонних разработчиков убедитесь, что они сертифицированы 1С и не содержат вредоносного кода. Перед установкой проверьте репутацию разработчика на форумах (например, на Infostart или 1С:Клуб программистов).
5. Автоматизация через регламентные задания
Чтобы не формировать отчёт о днях рождения вручную, можно настроить регламентное задание, которое будет автоматически отправлять список на email или сохранять его в файл. Это особенно удобно для крупных компаний, где кадровые специалисты не успевают отслеживать дни рождения вручную.
Пошаговая настройка:
Пример настройки отправки на email:
⚠️ Внимание: При настройке регламентных заданий для отправки писем убедитесь, что в 1С правильно настроены параметры SMTP-сервера. В противном случае письма не будут отправляться, а ошибки могут оставаться незамеченными. Проверьте настройки в Администрирование → Настройки программы → Почта.
6. Интеграция с внешними календарями (Outlook, Google Calendar)
Для удобства можно автоматически экспортировать дни рождения сотрудников в корпоративный календарь (Microsoft Outlook, Google Calendar или Yandex Calendar). Это позволит руководителям и коллегам видеть предстоящие события в своём рабочем календаре.
Способы интеграции:
Инструкция для экспорта в Google Calendar:
- Сформируйте отчёт в 1С и экспортируйте его в Excel (файл
.csv). - Откройте Google Calendar, перейдите в
Настройки → Импорт и экспорт. - Загрузите файл
.csv, указав столбцы с датами и названиями событий. - Настройте повторение событий (ежегодно) и сохраните.
- 🔍 Причина: У пользователя нет прав на просмотр личных данных сотрудников.
- 🔧 Решение: Настройте права в
Администрирование → Пользователи → Настройки прав. Добавьте рольКадровый учётилиПросмотр личных данных. - 🔍 Причина: Ошибка в логике фильтрации по дням (например,
ДЕНЬ(ДатаРождения) > 28для февраля). - 🔧 Решение: Используйте функцию
ДЕНЬГОДАвместо отдельных проверок на месяц и день. - 🔍 Причина: Изменения в структуре базы данных или API после обновления конфигурации.
- 🔧 Решение: Свяжитесь с разработчиком обработки для получения актуальной версии или проверьте совместимость на сайте 1С:ИТС.
Для успешной интеграции с Google Calendar убедитесь, что в экспортируемом файле даты рождения указаны в формате ГГГГ-ММ-ДД (например, 1990-05-15). В противном случае календарь может не распознать события.
Типичные ошибки и как их избежать
При работе с днями рождения в 1С пользователи часто сталкиваются с типичными проблемами. Вот наиболее распространённые из них и способы их решения:
1. В отчёте не отображаются даты рождения
2. В запросе не учитываются сотрудники с датой рождения в феврале в високосный год
3. Внешняя обработка не работает после обновления 1С
⚠️ Внимание: Если вы используете нетиповые конфигурации или сильно доработанные версии 1С, некоторые запросы и обработки могут работать некорректно. В этом случае рекомендуется обратиться к специалисту по 1С для адаптации кода под вашу базу.
FAQ: Частые вопросы по выводу дней рождения в 1С
Можно ли вывести дни рождения только для определённого подразделения?
Да, в стандартных отчётах (Список сотрудников или Сотрудники организации) добавьте фильтр по подразделению. В запросе используйте условие:
ГДЕ Сотрудники.Подразделение = &Подразделение
где &Подразделение — параметр, который можно задать при выполнении запроса.
Как вывести возраст сотрудников на текущую дату?
В запросе используйте функцию:
ВЫРАЗИТЬ(ГОД(ТЕКУЩАЯДАТА) - ГОД(ДатаРождения) -
ЕСЛИ МЕСЯЦ(ТЕКУЩАЯДАТА) < МЕСЯЦ(ДатаРождения)
ИЛИ (МЕСЯЦ(ТЕКУЩАЯДАТА) = МЕСЯЦ(ДатаРождения)
И ДЕНЬ(ТЕКУЩАЯДАТА) < ДЕНЬ(ДатаРождения))
ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК ЧИСЛО(10)) КАК Возраст
Как настроить автоматическое уведомление о днях рождения по email?
Используйте регламентное задание с обработкой, которая формирует список дней рождения и отправляет его на email. Пример кода для отправки письма:
Попытка
Почта = Новый Почта;
Сообщение = Новый ПочтовоеСообщение;
Сообщение.Тема ="Дни рождения на неделю";
Сообщение.Текст = СтрокаТаблицыДокумента(ТаблицаРезультатов);
Сообщение.Получатели.Добавить("hr@company.ru");
Почта.Отправить(Сообщение);
Исключение
ЗаписатьЛог(ОписаниеОшибки);
КонецПопытки;
Не забудьте настроить SMTP-сервер в параметрах 1С.
Можно ли вывести дни рождения в мобильном приложении 1С?
Да, если вы используете 1С:Мобильная платформа или приложение 1С:Предприятие для Android/iOS. Для этого:
- Опубликуйте отчёт на веб-сервере 1С.
- Настройте права доступа для мобильных пользователей.
- В мобильном приложении откройте раздел
Отчётыи выберите сохранённый вариант.
Ограничение: в мобильной версии могут не отображаться некоторые поля (например, фотографии сотрудников).
Как выгрузить дни рождения в Excel с формулами для расчёта возраста?
При экспорте в Excel добавьте в запрос колонку с датой рождения в формате ДД.ММ.ГГГГ:
ФОРМАТ(Сотрудники.ФизическоеЛицо.ДатаРождения,"ДФ=dd.MM.yyyy") КАК ДатаРожденияExcel
Затем в Excel используйте формулу для расчёта возраста:
=ДОЛЯГОДА(СЕГОДНЯ;A2;1)
где A2 — ячейка с датой рождения.