Формирование списков сотрудников для поздравлений с днем рождения или подготовка отчетности по возрасту персонала — это рутинная, но критически важная задача для кадровиков и специалистов по расчету заработной платы. В системах 1С:Зарплата и управление персоналом или 1С:Кадры данные хранятся в структурированном виде, однако стандартные интерфейсы не всегда позволяют получить выборку в нужном формате «здесь и сейчас» без лишних кликов. Пользователям часто требуется создать файл Excel для рассылки открыток или передать данные в стороннюю систему лояльности.
Существует несколько способов решения этой задачи: от использования встроенных отчетов до написания сложных запросов через консоль. Выбор метода зависит от вашей квалификации, прав доступа к базе данных и версии используемой конфигурации. В этой статье мы детально разберем наиболее эффективные методики, которые позволят вам быстро получить актуальный список именинников или полный реестр сотрудников с их датами рождения.
Использование стандартных отчетов и обработок
Самый простой и безопасный способ для рядового пользователя — воспользоваться готовыми средствами конфигурации. В типовых решениях 1С уже заложены механизмы анализа кадрового состава, которые не требуют вмешательства в программный код. Обычно такие инструменты находятся в разделе кадрового учета или в блоке отчетов по персоналу.
Например, отчет «Список сотрудников» или «Кадровый список» позволяет настроить отбор по необходимым полям. Вам необходимо зайти в меню отчетов, выбрать нужную форму и в настройках добавить поле Дата рождения. Если это поле скрыто по умолчанию, его можно вывести через кнопку «Изменить форму» или «Настройки». После формирования отчета данные можно выгрузить в табличный документ.
Однако стандартные отчеты имеют ограничения по гибкости сортировки и форматирования. Часто они выгружают данные в неудобном для дальнейшей обработки виде, требуя ручной чистки в Excel. Кроме того, в некоторых старых версиях конфигураций доступ к полным данным о дате рождения может быть ограничен правами доступа для определенных ролей пользователей.
⚠️ Внимание: Если вы не видите поле «Дата рождения» в настройках стандартного отчета, проверьте свои права доступа в режиме «Администрирование» или обратитесь к главному бухгалтеру для расширения полномочий.
Используйте группировку в настройках отчета по месяцам рождения, чтобы быстро подготовить списки для поздравлений на каждый месяц года.
Для более продвинутых пользователей существует универсальная обработка «Выгрузка данных», которая позволяет выбрать произвольный набор полей из справочника «Физические лица». Этот инструмент дает больше свободы в выборе колонок, но требует понимания структуры метаданных системы.
Формирование выборки через Консоль запросов
Если стандартные отчеты не покрывают ваши потребности, самым мощным инструментом становится Консоль запросов. Этот механизм позволяет писать SQL-подобные запросы на языке 1С, получая данные напрямую из таблиц информационной базы. Для работы с этим инструментом вам потребуются права администратора или специальная роль.
Чтобы получить список сотрудников, необходимо составить запрос, выбирающий ссылки на физические лица и их свойства. Базовая структура запроса выглядит следующим образом: мы обращаемся к регистру сведений или справочнику, где хранятся персональные данные.
ВЫБРАТЬ
Сотрудники.Ссылка КАК Сотрудник,
Сотрудники.ФизическоеЛицо.ДатаРождения КАК ДатаРождения,
Сотрудники.ФизическоеЛицо.Фамилия КАК Фамилия,
Сотрудники.ФизическоеЛицо.Имя КАК Имя
ИЗ
Справочник.Сотрудники КАК Сотрудники
ГДЕ
Сотрудники.Уволен = ЛОЖЬ
УПОРЯДОЧИТЬ ПО
ДатаРождения
После выполнения запроса в нижней панели консоли вы увидите таблицу с результатами. Ее можно сразу скопировать в буфер обмена (Ctrl+C) и вставить в Excel. Это наиболее быстрый способ получить «сырые» данные без лишнего форматирования, которое навязывают стандартные отчеты.
При работе с консолью запросов важно учитывать структуру вашей базы. В разных конфигурациях (КА, ЗУП 2.5, ЗУП 3.0) имена таблиц и полей могут отличаться. Например, в ЗУП 3.0 данные о дате рождения могут быть вынесены в отдельный регистр сведений для оптимизации производительности.
Настройка пользовательского отчета в СКД
Система Компоновки Данных (СКД) — это современный механизм построения отчетов в 1С, который позволяет создавать гибкие выборки без написания кода. Вы можете создать свой собственный отчет, который будет всегда под рукой в списке ваших любимых форм.
Для создания такого отчета выберите пункт меню Все отчеты → Создать новый отчет. В конструкторе настроек вам нужно добавить таблицу «Сотрудники» и связанные с ней таблицы «Физические лица». Затем перетащите необходимые поля (Фамилия, Дата рождения, Подразделение) в область макета.
- 📊 Добавьте отбор по дате рождения, если нужны только ближайшие именинники.
- 📅 Настройте группировку по месяцам для удобства просмотра календаря праздников.
- 📂 Сохраните вариант отчета в личную папку, чтобы не настраивать его каждый раз заново.
Преимущество СКД заключается в возможности параметризации. Вы можете добавить поля ввода «Начало периода» и «Конец периода», чтобы система автоматически фильтровала сотрудников, у которых день рождения попадает в указанный диапазон. Это избавляет от необходимости вручную фильтровать полученные списки.
⚠️ Внимание: Интерфейс конструктора СКД может отличаться в зависимости от версии платформы 1С:Предприятие (8.2, 8.3). В новых версиях доступен режим «Расширенный», дающий больше возможностей настройки.
☑️ Создание отчета в СКД
Готовый отчет можно вывести не только в табличный документ, но и сразу отправить на печать или сохранить в формат PDF. Это особенно удобно для подготовки официальных приказов или списков для размещения на доске почета.
Применение внешних обработок и расширений
Для автоматизации регулярных задач многие компании используют сторонние обработки или пишут собственные расширения конфигурации. Это позволяет внедрить кнопку «Выгрузить именинников» прямо в форму списка сотрудников, сделав процесс однокликовым.
Существует множество готовых решений от партнеров фирмы 1С, которые специализируются на кадровом учете. Такие обработки часто имеют более богатый функционал: они могут автоматически формировать поздравительные открытки, рассылать письма через Outlook или интегрироваться с CRM-системами.
При установке внешних обработок соблюдайте осторожность. Загружайте файлы только из доверенных источников, так как код обработки выполняется с правами текущего пользователя и может теоретически нанести вред данным. Перед внедрением в продуктивную базу обязательно протестируйте обработку на копии.
| Тип решения | Сложность внедрения | Гибкость настройки | Требуемые права |
|---|---|---|---|
| Стандартный отчет | Низкая | Средняя | Пользователь |
| Консоль запросов | Высокая | Максимальная | Администратор |
| Внешняя обработка | Средняя | Высокая | Пользователь/Админ |
| Расширение конфигурации | Высокая | Максимальная | Конфигуратор |
Использование расширений конфигурации является наиболее профессиональным подходом для крупных предприятий. Вы можете добавить новое поле в форму или новый пункт в меню, который будет вызывать специализированный алгоритм выгрузки данных с учетом всех внутренних бизнес-правил компании.
Прямой запрос к базе данных (SQL)
Для специалистов по администрированию баз данных доступен самый низкоуровневый метод — выполнение SQL-запросов непосредственно к серверу СУБД (MSSQL, PostgreSQL, Oracle). Этот способ обходит логику платформы 1С и работает напрямую с физическими таблицами.
Главная сложность здесь заключается в том, что 1С хранит данные в закодированном виде. Ссылки на объекты, строковые константы и даты представлены в специфическом формате. Например, имя сотрудника может храниться в таблице _Reference28 (где 28 — это уникальный идентификатор метаданных), а дата рождения — в связанной таблице свойств.
SELECT T1._Description AS LastName, T2._Value AS BirthDate
FROM _Reference28 AS T1
JOIN _InfoRg45 AS T2 ON T1._IDRRef = T2._RecordRRef
WHERE T2._FieldRRef = 0x05000000010000000000000000000000
Использование SQL оправдано только в случаях, когда требуется выгрузить огромные объемы данных (сотни тысяч записей) и средства платформы 1С работают слишком медленно из-за блокировок или нагрузки на сервер. Для обычных задач кадрового учета этот метод избыточен и рискован.
Как узнать идентификатор таблицы в SQL?
Запустите консоль запросов в 1С, выполните простой запрос и нажмите кнопку "Показать таблицу временных данных". В открывшемся окне будет видно соответствие имен метаданных и физических таблиц СУБД.
Помните, что прямое вмешательство в базу данных через SQL может нарушить целостность данных, если вы попытаетесь не только читать, но и изменять информацию. Используйте этот метод исключительно в режиме SELECT для чтения.
Автоматизация и планирование выгрузки
Если список сотрудников с датами рождения требуется регулярно (например, еженедельно для планерки), процесс можно полностью автоматизировать. В 1С существует механизм регламентных заданий, который позволяет запускать отчеты или обработки по расписанию.
Вы можете настроить задание, которое каждое утро в 9:00 формирует список именинников на текущую неделю и сохраняет его в общую папку на сервере в формате Excel. Для этого используется обработка «Регламентные операции» или специализированные внешние скрипты, вызывающие COM-объект 1С.
Такой подход исключает человеческий фактор: кадровик больше не забудет сформировать список, а данные всегда будут актуальными на момент начала рабочего дня. Кроме того, автоматизированный файл можно сразу передать в скрипт рассылки поздравлений в корпоративном мессенджере.
⚠️ Внимание: При настройке автоматической выгрузки убедитесь, что у учетной записи, от имени которой запускается задание, есть права на запись файлов в целевую сетевую папку.
Автоматизация рутинных выборок экономит до 30 минут рабочего времени кадровика еженедельно и гарантирует своевременность поздравлений.
Для реализации сложной логики, например, отправки писем, может потребоваться привлечение программиста 1С для написания небольшой обработки, использующей объекты работы с почтой (InternetMail) и файловой системой.
Можно ли выгрузить дату рождения, если она не заполнена в карточке?
Нет, выгрузить можно только те данные, которые фактически записаны в базу. Если поле «Дата рождения» пустое, в результат выборки попадет значение NULL или пустая ячейка. Необходимо сначала внести недостающие данные в карточки сотрудников.
Как скрыть возраст сотрудников, оставив только день и месяц?
В консоли запросов или СКД можно использовать функцию преобразования даты. Например, выражение Месяц(ДатаРождения) и День(ДатаРождения) позволят вывести только числовые значения месяца и дня, игнорируя год рождения.
Почему в выгрузке дублируются сотрудники?
Дублирование часто возникает, если в базе есть несколько записей о приеме одного и того же физического лица (например, переводы между подразделениями создали новые записи в регистре). Используйте оператор РАЗЛИЧНЫЕ в запросе или группировку по физическому лицу.
Безопасно ли передавать файл с датами рождения по электронной почте?
Персональные данные (ПДн) требуют защиты. Передача файла с датами рождения по открытым каналам связи без шифрования может нарушать политику безопасности компании и законодательство о защите ПДн. Рекомендуется использовать защищенные каналы или архивы с паролем.
Как отфильтровать только действующих сотрудников?
В запросе обязательно добавляйте условие ГДЕ Сотрудники.Уволен = ЛОЖЬ или проверяйте наличие действующего записи в регистре «Кадровая история». Это исключит из списка тех, кто уже покинул компанию.