Работа с кадрами в 1С:Предприятие требует регулярного контроля за важными датами — отпуска, медицинские осмотры, и конечно, дни рождения сотрудников. Подарочные сертификаты, корпоративные поздравления или просто планирование закупки подарков — все это требует актуального списка с датами рождения. Но как быстро получить такой список из базы, особенно если сотрудников сотни?
Многие пользователи 1С:Зарплата и Управление Персоналом (ЗУП) или 1С:Бухгалтерия сталкиваются с тем, что стандартные отчеты не всегда дают нужный формат вывода. Кто-то пытается экспортировать данные в Excel и сортировать вручную, кто-то ищет готовые обработки в интернете. В этой статье мы разберем 5 проверенных способов — от простых до продвинутых, — чтобы вывести список сотрудников с сортировкой по дате рождения, включая автоматизацию через запросы и скрипты.
Если вам нужно срочно получить список для поздравлений или отчетности, начните с первого способа (стандартный отчет). Для регулярного использования лучше настроить специальный отчет или внешнюю обработку — об этом в разделах 3 и 4. А если вы работаете с 1С 8.3 и умеете писать запросы, в конце статьи найдете готовые примеры кода для выгрузки данных в любом формате.
Прежде чем приступать, убедитесь, что у вас есть права на просмотр кадровых данных в базе. Если вы администратор или кадровик, проблем не будет. Если же вы бухгалтер с ограниченным доступом, возможно, потребуется помощь ИТ-отдела для настройки дополнительных прав.
1. Стандартный отчет «Список сотрудников» с сортировкой по дате рождения
Самый быстрый способ — использовать встроенные возможности 1С:ЗУП. Для этого не нужно писать код или устанавливать дополнительные обработки. Достаточно нескольких кликов:
Откройте раздел «Кадры» (или «Персонал» в зависимости от версии конфигурации). Перейдите в подменю «Отчеты» и выберите «Список сотрудников». В открывшемся окне:
- 📅 Установите период отчета (например, текущий месяц или год).
- 🔍 В поле «Группировка» выберите «По подразделениям» или оставьте без группировки.
- 📊 В настройках отчета (шестеренка в правом верхнем углу) найдите вкладку «Поля» и добавьте колонку «Дата рождения».
- ↕️ Нажмите на заголовок колонки «Дата рождения» дважды, чтобы отсортировать данные по возрастанию (от самого раннего к самому позднему).
Готовый отчет можно экспортировать в Excel через кнопку «Вывести в Excel» (значок таблицы с зеленым крестиком). Минус этого способа — отсутствие гибкой фильтрации (например, нельзя быстро выбрать только тех, у кого день рождения в текущем месяце). Зато это самый безопасный метод, не требующий изменений в конфигурации.
Если в отчете не хватает колонок (например, «Подразделение» или «Должность»), добавьте их через настройки полей. Это поможетlater фильтровать данные прямо в Excel.
2. Использование отчета «Календарь дней рождения» (для 1С:ЗУП)
В конфигурации 1С:Зарплата и Управление Персоналом 8.3 есть специализированный отчет «Календарь дней рождения», который сразу показывает сотрудников с сортировкой по месяцам. Чтобы его открыть:
Перейдите в раздел «Кадры» → «Отчеты по кадровому учету» → «Календарь дней рождения». Здесь вы увидите список сотрудников, сгруппированный по месяцам, с указанием даты рождения и возраста. Преимущества этого отчета:
- 🎂 Автоматическая группировка по месяцам — удобно для планирования поздравлений.
- 👥 Показывает возраст сотрудников (рассчитывается автоматически).
- 📤 Возможность экспорта в Excel или PDF.
Однако у этого отчета есть ограничения:
⚠️ Внимание: Отчет «Календарь дней рождения» доступен только в 1С:ЗУП (ред. 3.1 и выше). В 1С:Бухгалтерия 8.3 его нет — там придется использовать другие способы.
Если вам нужно выгрузить данные за конкретный период (например, только ближайшие 3 месяца), используйте фильтр по дате в настройках отчета. Для этого нажмите «Настройки» → «Отбор» и добавьте условие по полю «Дата рождения» (например, «Месяц рождения = Текущий месяц»).
3. Создание пользовательского отчета с датой рождения
Если стандартные отчеты не подходят, можно создать собственный отчет с нужными полями. Это потребует немного больше времени, но зато вы получите гибкий инструмент, который можно сохранять и использовать повторно.
Инструкция для 1С:ЗУП 8.3:
- Перейдите в раздел «Кадры» → «Отчеты» → «Все отчеты».
- Нажмите «Создать» → «Новый отчет».
- В конструкторе отчетов выберите источник данных — «Сотрудники».
- Добавьте следующие поля:
- 👤 ФИО сотрудника
- 📅 Дата рождения
- 🏢 Подразделение
- 💼 Должность
- В настройках сортировки укажите «Дата рождения» (по возрастанию).
- Сохраните отчет под именем, например, «Список дней рождения».
- 🔍 Поиск на сайте Infostart (раздел «Обработки для 1С:ЗУП»).
- 📁 Загрузка из 1С:ИТС (если у вас действующая подписка).
- 💻 Написание своей обработки (требует знаний 1С:Предприятие 8.3).
Теперь этот отчет будет доступен в списке пользовательских отчетов. Его можно редактировать, добавляя новые поля (например, «Телефон» или «Email») или меняя формат вывода.
Добавлены все нужные поля (ФИО, дата рождения, подразделение)
Установлена сортировка по дате рождения
Отчет сохранен с понятным именем (например, "Дни рождения 2026")
Проверена работа фильтров (если нужны)
-->
Если вам нужно выгружать данные регулярно (например, ежемесячно), настройте расписание выполнения отчета через «Администрирование» → «Регламентные задания». Это позволит автоматически формировать файл с днями рождения и отправлять его на email.
4. Выгрузка через внешнюю обработку (для продвинутых пользователей)
Для тех, кто часто работает с выгрузками данных, удобнее использовать внешние обработки. Они позволяют гибко настраивать формат вывода и добавлять дополнительную логику (например, расчет возраста или фильтрацию по подразделениям).
Где взять готовую обработку:
Пример популярных обработок для выгрузки дней рождения:
| Название обработки | Функционал | Совместимость |
|---|---|---|
| «Выгрузка дней рождения в Excel» | Экспорт в Excel с группировкой по месяцам, расчетом возраста и возможностью фильтрации по подразделениям. | 1С:ЗУП 3.1, 1С:Бухгалтерия 3.0 |
| «Календарь дней рождения с напоминаниями» | Формирует список с напоминаниями за 7 дней до дня рождения, отправляет уведомления по email. | 1С:ЗУП 3.1 (требует настройки почты) |
| «Сводный отчет по кадрам» | Включает дни рождения, стаж работы, контактные данные. Поддерживает выгрузку в PDF. | 1С:ЗУП 3.1, 1С:Комплексная автоматизация |
Чтобы установить обработку:
- Скачайте файл с расширением
.epfили.erf. - В 1С перейдите в «Файл» → «Открыть» и выберите скачанный файл.
- Следуйте инструкциям мастера установки.
⚠️ Внимание: Перед установкой внешних обработок сделайте резервную копию базы. Некоторые обработки могут содержать ошибки или конфликтовать с текущей конфигурацией.
5. Вывод данных через запрос (для программистов 1С)
Если вы умеете работать с языком запросов 1С, можно написать скрипт для выгрузки дней рождения в нужном формате. Это самый гибкий способ, позволяющий:
- 📌 Фильтровать сотрудников по подразделениям, статусу (действующие/уволенные).
- 📊 Добавлять дополнительные поля (например, стаж работы или контакты).
- 📤 Экспортировать данные в Excel, JSON или XML.
Пример запроса для вывода списка сотрудников с датами рождения (для 1С:ЗУП 3.1):
ВЫБРАТЬ
Сотрудники.ФизическоеЛицо КАК ФИО,
Сотрудники.ДатаРождения КАК ДатаРождения,
Сотрудники.Подразделение КАК Подразделение,
ВЫРАЗИТЬ(Сотрудники.ДатаРождения КАК ДАТА) КАК ДатаРожденияФормат,
ВОЗРАСТ(Сотрудники.ДатаРождения, ТЕКУЩАЯДАТА()) КАК Возраст
ИЗ
Справочник.Сотрудники КАК Сотрудники
ГДЕ
НЕ Сотрудники.ПометкаУдаления
И Сотрудники.ДатаРождения <> ДАТАВРЕМЯ(1, 1, 1)
УПОРЯДОЧИТЬ ПО
ДатаРожденияФормат
Чтобы выполнить этот запрос:
- Откройте «Все функции» (или нажмите
Ctrl + Shift + F). - Перейдите на вкладку «Запросы».
- Вставьте код запроса и нажмите «Выполнить».
- Результат можно скопировать в Excel или сохранить как табличный документ.
Если вам нужно выгрузить дни рождения только за текущий месяц, добавьте в условие WHERE фильтр:
1. После выполнения запроса нажмите правой кнопкой на результат и выберите «Вывести список». 2. В открывшемся окне нажмите «Еще» → «Выгрузить в Excel». 3. Выберите формат (.xlsx или .xls) и сохраните файл.МЕСЯЦ(Сотрудники.ДатаРождения) = МЕСЯЦ(ТЕКУЩАЯДАТА()).
Как выгрузить результат запроса в Excel?
Для автоматизации можно создать регламентное задание, которое будет выполнять этот запрос ежемесячно и отправлять результат на email. Пример кода для отправки результата по почте:
Процедура ОтправитьДниРожденияНаПочту()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ... "; // Ваш запрос из примера выше
Результат = Запрос.Выполнить();
Таблица = Новый ТабличныйДокумент;
Таблица.Вывести(Результат);
ПочтовыйПрофиль = ПолучаемПрофильПочты(); // Настройте свой профиль
Сообщение = Новый СообщениеЭлектроннойПочты;
Сообщение.Тема = "Список дней рождения на " + Формат(ТЕКУЩАЯДАТА(), "ММММ yyyy");
Сообщение.Текст = "Вложение: дни_рождения.xlsx";
Сообщение.Вложения.Добавить(Таблица.Записать("C:\Temp\дни_рождения.xlsx", ТипФайлаТабличногоДокумента.XLSX));
ОтправитьПочту(Сообщение, ПочтовыйПрофиль);
КонецПроцедуры
Сравнение способов: какой выбрать?
Выбор метода зависит от ваших задач и уровня подготовки. Вот краткое сравнение:
| Способ | Сложность | Гибкость | Автоматизация | Подходит для |
|---|---|---|---|---|
| Стандартный отчет | ⭐ (просто) | ❌ Минимальная | ❌ Нет | Разовые выгрузки, небольшие базы |
| Календарь дней рождения | ⭐⭐ (просто) | ⚠️ Средняя | ❌ Нет | 1С:ЗУП, планирование поздравлений |
| Пользовательский отчет | ⭐⭐⭐ (средняя) | ✅ Высокая | ⚠️ Частично (через регламентные задания) | Регулярное использование, нужны дополнительные поля |
| Внешняя обработка | ⭐⭐⭐⭐ (продвинутый) | ✅ Очень высокая | ✅ Да | Крупные базы, сложные фильтры, интеграция с почтой |
| Запрос 1С | ⭐⭐⭐⭐⭐ (для программистов) | ✅ Максимальная | ✅ Да | Автоматизация, нестандартные форматы выгрузки |
Стандартный отчет 1С
Календарь дней рождения
Собственный отчет
Внешняя обработка
Запрос 1С
Другой вариант-->
Если вы работаете с 1С:Бухгалтерия 8.3 (где нет календаря дней рождения), оптимальный вариант — создать пользовательский отчет или использовать внешнюю обработку. Для разовой выгрузки подойдет стандартный отчет с ручной сортировкой в Excel.
Частые ошибки и как их избежать
При работе с выгрузкой дней рождения пользователи часто сталкиваются с типичными проблемами. Вот как их решить:
1. В отчете не отображаются даты рождения.
Причина: в карточках сотрудников не заполнено поле «Дата рождения». Проверьте данные через «Кадры» → «Сотрудники» (откройте карточку сотрудника и убедитесь, что дата указана).
2. Отчет выгружается без сортировки.
Решение: в настройках отчета нажмите на заголовок колонки «Дата рождения» дважды (для сортировки по возрастанию) или удерживайте Shift + клик (для сортировки по убыванию).
3. Внешняя обработка не устанавливается.
Причины:
- 🔒 Недостаточно прав (требуются права администратора).
- 📁 Несовместимость версии обработки с вашей конфигурацией.
- 🛡️ Блокировка антивирусом (добавьте папку с 1С в исключения).
4. Запрос возвращает пустой результат.
Проверьте:
- 🔍 Условие
НЕ Сотрудники.ПометкаУдаления(исключает уволенных). - 📅 Формат даты — используйте
ДАТАВРЕМЯ(1,1,1)для проверки на пустые значения. - 🔄 Права доступа — у пользователя должны быть права на чтение справочника «Сотрудники».
⚠️ Внимание: Если вы используете облачную версию 1С (1С:Fresh), некоторые способы (например, установка внешних обработок) могут быть ограничены. В этом случае обратитесь в поддержку 1С для уточнения возможностей вашего тарифа.
FAQ: Ответы на частые вопросы
Можно ли выгрузить дни рождения только для конкретного подразделения?
Да. В стандартном отчете «Список сотрудников» добавьте отбор по полю «Подразделение». Во внешней обработке или запросе используйте условие:
ГДЕ Сотрудники.Подразделение = &Подразделение
где &Подразделение — параметр, который можно задать при выполнении.
Как автоматически отправлять список дней рождения на email?
Настройте регламентное задание с использованием запроса (раздел 5) или внешней обработки с функцией отправки почты. Пример настройки:
- Создайте обработку с экспортом в Excel.
- Добавьте код для отправки письма (используйте объект
СообщениеЭлектроннойПочты). - Настройте регламентное задание на ежемесячное выполнение.
Для облачной версии 1С:Fresh автоматизация доступна только через 1С:Connect или сторонние сервисы.
Почему в отчете не показывается возраст сотрудников?
Возраст рассчитывается автоматически только в отчете «Календарь дней рождения» (1С:ЗУП). В пользовательском отчете или запросе добавьте поле с формулой:
ВОЗРАСТ(Сотрудники.ДатаРождения, ТЕКУЩАЯДАТА()) КАК Возраст
Можно ли выгрузить дни рождения в Google Календарь?
Да, но потребуется промежуточный экспорт в Excel или CSV, а затем импорт в Google Календарь. Альтернатива — использовать 1С:Connect для интеграции с Google API (требуются навыки программирования).
Как выгрузить дни рождения уволенных сотрудников?
В запросе или отчете снимите фильтр по пометке удаления:
// Уберите условие:
ГДЕ НЕ Сотрудники.ПометкаУдаления
или замените на:
ГДЕ Сотрудники.ДатаУволенения <> ДАТАВРЕМЯ(1,1,1)