Перенос данных из устаревших или сильно доработанных конфигураций «1С:Зарплата и Управление Персоналом» редакции 2.5 в современную редакцию 3.1 — частая задача при автоматизации кадрового учета. Особые трудности возникают при конвертации контактной информации (адресов, телефонов, email), поскольку структура ее хранения в Библиотеке Стандартных Подсистем (БСП) в ЗУП 3.1 кардинально отличается от ЗУП 2.5.
Рассмотрим подробно, где находятся типовые правила обмена, как устроена структура контактных данных в обеих конфигурациях и какими способами можно организовать фоновый или постоянный перенос физических лиц.
Проанализируем ключевые различия в структуре регистра КонтактнаяИнформация между двумя поколениями программы:
КонтактнаяИнформация. Детализация адреса (индекс, регион, город, улица, дом) разнесена по строковым колонкам от Поле1 до Поле10, а итоговая текстовая строка находится в реквизите Представление.ЗначенияПолей. В реквизите Представление при этом хранится пользовательская строка адреса или телефона.В конфигурации ЗУП 3.1 уже встроен готовый механизм конвертации данных из редакции 2.5. Правила обмена для программы «1С:Конвертация данных 2.0» содержатся прямо в составе конфигурации ЗУП 3.1.
Чтобы выгрузить и изучить готовый алгоритм переноса контактных данных и физических лиц, выполним следующие шаги:
Общие > Макеты.ЗарплатаКадрыПереносДанныхИзЗУП25.В этих правилах можно посмотреть готовые обработчики ПКО (Правила Конвертации Объектов) для справочника ФизическиеЛица и правила конвертации регистра сведений КонтактнаяИнформация.
Если требуется написать собственную обработку или регламентное задание для переноса данных без использования тяжелых правил КД 2.0, формировать XML-строку вручную не обязательно. В ЗУП 3.1 предусмотрен специальный программный интерфейс в общем модуле УправлениеКонтактнойИнформацией.
Разберем пример кода, как преобразовать обычную текстовую строку адреса или телефона из базы ЗУП 2.5 в структурированный XML/JSON вариант, понятный для ЗУП 3.1:
// Формируем структуру данных на основе строки представления из 2.5
ВидКонтактнойИнформации = Справочники.ВидыКонтактнойИнформации.АдресПоПропискеФизическиеЛица;
ТекстовоеПредставление = "г. Москва, ул. Ленина, д. 10, кв. 5";
// Используем типовую функцию БСП для получения XML/JSON строки
ЗначенияПолейXML = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияПоПредставлению(ТекстовоеПредставление, ВидКонтактнойИнформации);
// Пример записи контактной информации для физического лица в ЗУП 3.1
НаборЗаписей = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Объект.Установить(СсылкаНаФизЛицо);
НаборЗаписей.Отбор.Вид.Установить(ВидКонтактнойИнформации);
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Объект = СсылкаНаФизЛицо;
НоваяЗапись.Вид = ВидКонтактнойИнформации;
НоваяЗапись.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
НоваяЗапись.Представление = ТекстовоеПредставление;
НоваяЗапись.ЗначенияПолей = ЗначенияПолейXML;
НаборЗаписей.Записать();
Если организация планирует вести учет параллельно в двух базах или постепенно переносить элементы кадрового учета, можно выбрать один из технических подходов:
V83.COMConnector):HTTP-сервис. При создании нового элемента в ЗУП 2.5 подписка на событие отправляет JSON-пакет с данными физического лица в ЗУП 3.1, где приемник моментально записывает объект.СНИЛС + ИНН или ФИО + ДатаРождения. Дополнительно можно сохранять GUID (УникальныйИдентификатор) источника из ЗУП 2.5 в дополнительном реквизите физического лица в ЗУП 3.1.Применяя эти методы и опираясь на типовой макет ЗарплатаКадрыПереносДанныхИзЗУП25, можно успешно реализовать перенос физических лиц и корректную конвертацию их контактных данных даже с устаревших версий ЗУП 2.5.