В процессе разработки отчетов или обработок в 1С:ЗУП 8 перед программистами часто встает задача получения актуальных паспортных данных и контактной информации сотрудников. Давайте подробно разберем, как правильно реализовать эту задачу, какие механизмы предоставляет платформа и каких ошибок стоит избегать.
Если вам необходимо выбрать данные для нескольких сотрудников одновременно в рамках одного отчета, оптимальным способом будет использование конструктора запросов с левыми соединениями к таблицам СрезПоследних. Это позволит получить актуальные данные на конкретную дату.
Рассмотрим пример запроса, который связывает справочник СотрудникиОрганизаций с регистрами сведений:
ВЫБРАТЬ
ФИОФизЛицСрезПоследних.Фамилия,
ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия,
ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер,
КонтактнаяИнформация.Представление
ИЗ
Справочник.ФизическиеЛица КАК ФизическиеЛица
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК ПаспортныеДанныеФизЛицСрезПоследних
ПО ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо = ФизическиеЛица.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ПО КонтактнаяИнформация.Объект = ФизическиеЛица.Ссылка
Важное примечание: при работе с регистром КонтактнаяИнформация учитывайте, что он не является периодическим, поэтому функция ПолучитьПоследнее для него не применима. Используйте просто Получить по отбору или соединение в запросе.
Разработчики 1С предусмотрели множество готовых функций в общих модулях для получения кадровых данных. Вместо написания сложных запросов, вы можете обратиться к готовым решениям, которые уже учитывают специфику работы системы:
УправлениеКонтактнойИнформацией: содержит функции для извлечения адресов и телефонов. Например, СведенияОЮрФизЛице или ПолучитьАдресИзКонтактнойИнформации.ОбщегоНазначения: содержит полезные функции для обработки ФИО, такие как ФамилияИнициалыФизЛица или ФамилияИмяОтчествоФизЛица.КадровыйУчет и функцию КадровыеДанныеФизическихЛиц, которая позволяет гибко получать любые кадровые сведения через передачу структуры полей.Если ваша цель — получение данных для пользователя (например, в печатную форму или отчет), не всегда нужно писать код «с нуля». Рассмотрим, как использовать штатный функционал:
В разделе Кадры вы найдете Кадровые отчеты, среди которых есть Личные данные сотрудника. Вы можете:
При реализации выгрузок данных (например, для банков или сторонних систем) помните следующее:
XML, не пытайтесь сохранить таблицу в Excel и просто переименовать расширение. Для корректного обмена используйте методы ЗаписьXML и СериализаторXDTO, чтобы структура файла соответствовала требованиям получателя.Правка -> Глобальный поиск. Это позволит найти все вхождения нужного метода в типовых модулях.Использование типовых механизмов — лучший способ обеспечить стабильность и поддерживаемость вашего кода при обновлениях конфигурации 1С.