Перенос данных между информационными базами — задача, с которой часто сталкиваются технические специалисты при свертке баз, переходе на новые редакции или разделении учета. В конфигурации 1С:Зарплата и кадры государственного учреждения (ЗКГУ), как и в 1С:ЗУП, данные о людях распределены между несколькими объектами: справочниками, их табличными частями и независимыми регистрами сведений. Разберем детально, как выполнить этот перенос корректно, сохранив адреса, паспорта и связь между сотрудниками и физическими лицами.
Прежде чем приступать к выгрузке, проанализируем архитектуру хранения данных. В системе 1С разделены понятия человека как личности и человека как единицы штатного расписания:
При переносе важно соблюдать последовательность: сначала переносятся (или создаются) физические лица со всеми персональными данными, а затем — сотрудники, которые ссылаются на эти лица.
Этот метод считается наиболее «прямым» и техническим. Рассмотрим его по шагам:
ВыгрузкаЗагрузкаДанныхXML в исходной базе.ФизическиеЛица. Вместе с ним автоматически выгрузятся его табличные части.ФизическиеЛица. Выгружая справочник, мы автоматически подтягиваем и адреса.Сотрудники.Важный нюанс: при использовании XML-выгрузки объекты сопоставляются по внутреннему идентификатору (GUID). Это гарантирует, что в новой базе связи не «развалятся», но требует осторожности, если в целевой базе уже есть какие-то данные, чтобы не создать дубли с разными GUID.
Рассмотрим более современный и «умный» способ, упомянутый опытными специалистами. В строке поиска «Функций технического специалиста» введем «Выгрузка» и найдем обработку ВыгрузкаЗагрузкаEnterpriseData.
Этот метод отличается тем, что система анализирует поля поиска (например, СНИЛС или ИНН) и сопоставляет объекты, даже если их GUID различаются. Проанализируем алгоритм действий:
ФизическиеЛица.Чтобы карточка физлица в новой базе была полностью заполнена, недостаточно перенести только адреса и паспорта. Разберем, какие регистры сведений критически важны:
Проанализируем ситуацию: вы изменили данные, но не знаете, какой объект за это отвечает. Рассмотрим методику поиска:
РегистрСведений.ДокументыФизическихЛиц).Выясним причины, по которым данные могут отображаться некорректно после переноса:
«Красные» адреса: Если после загрузки адрес отображается красным шрифтом, это означает, что в новой базе не загружен адресный классификатор (ФИАС/ГАР). Программа видит строку адреса, но не может сопоставить её с официальным справочником. Решение: загрузить классификатор по нужным регионам или перенести записи регистра АдресныеОбъекты.
Дублирование видов контактной информации: При переносе через XML могут создаться копии предопределенных элементов в справочнике ВидыКонтактнойИнформации. В этом случае у физлица будет заполнен «Адрес проживания», но в карточке он не отобразится, так как программа будет «смотреть» в другой (новый) вид КИ. Рассмотрим решение: воспользуйтесь стандартной обработкой Поиск и удаление дублей, объедините виды КИ, оставив один корректный элемент.
Если вы пишете собственную обработку для проверки переноса, полезно знать, как программно обратиться к табличной части контактной информации. Посмотрим на пример кода для получения адреса проживания:
Для Каждого СтрокаКИ Из ОбъектФизЛицо.КонтактнаяИнформация Цикл
Если СтрокаКИ.Вид = Справочники.ВидыКонтактнойИнформации.АдресПроживанияФизЛица Тогда
Сообщить("Найден адрес: " + СтрокаКИ.Представление);
КонецЕсли;
КонецЦикла;
Этот фрагмент демонстрирует, что информация находится внутри объекта справочника, что подтверждает слова участников дискуссии о необходимости выгрузки справочника ФизическиеЛица целиком.
Таким образом, для успешного переноса мы рекомендуем использовать комбинацию методов: Enterprise Data для чистого переноса физических лиц со всеми персональными данными (это минимизирует риск ошибок в логике) и Выгрузку/Загрузку XML для точечного переноса справочника Сотрудники и специфических кадровых регистров, если это необходимо.