Правила обмена для переноса физических лиц между ЗУП 3.1 -> ЗУП 3.1


Решил поделиться собственным опытом переноса данных по физлицам между идентичными базами, для чего они написаны, думаю, будет понятно после прочтения.

Да, знаю, есть обработка переноса данных между идентичными конфигурациями, служит для загрузки данных по справочникам, документам и т.д. Но вот возникла задача организовать не разовый, а постоянный перенос Физических лиц между базами, ввиду того что люди могут увольняться и приниматься в разные организации кадровый учет по которым ведется одними людьми, думаете редкая ситуация? Ну так вот, пример правил которые Выгружают непосредственно выбранное ФизЛицо и данный по нему подчиненных справочников, таких как образование, родственники, данные регистров с паспортными данными и воинским учетом, адресами и телефонами. Преимущество в том что нужно выбрать в качестве параметра ФизЛицо. Несложные для понимания правила, дают почву для применения подобного рода приемов для написания других обменов.

Толчком послужило обсуждение небольшой проблемы связанной с использованием мною данных правил, размещенное на здешнем форуме

https://forum.infostart.ru/forum15/topic201055/

В принципе механизм обмена обсуждается в теме форума. Синхронизация физических лиц происходит по ИНН, Полному имени, Дате рождения, так как ИНН не у всех бывает заполнен. На вопрос к сожалению никто мне не смог ответить, нашел решение сам, поэтому отдать вознаграждение пришлось себе, сделал так впервые, теперь угрызения, но это справедливо, на мой взгляд.

Немного о том как это работает. Правила созданы в Конвертации 2.1, для релизов 3.1.3.224. В виду того что изменения в обмениваемых объектах крайне редки, для релиза 3.1.7.106, они актуальны, и думаю что будут еще немало времени.

Чтобы выполнить обмен нужно использовать обработку УниверсальныйОбменДаннымивФорматеXML, после "прочтения" правил в обработке снять галочки со всех объектов метаданных присутствующих в обмене, поставить только на "ФизическиеЛица" и на вкладке параметры указать Физлицо. В базе приемнике этой же обработкой загрузить данные.

Плюсы в том что выгружаются именно те объекты которые необходимо, то есть это около 20 объектов. Что согласитесь при загрузке существенно экономит нервы, когда загруженных данных немного.

3 Comments

  1. SmArtist

    Для ЗУП 3 написал свою обработку, в ней удобно, что можно отметить кого загружать, а кого нет: https://infostart.ru/public/1029447/

    И не обязательно чтобы конфигурации были идентичные, релизы могут быть разные.

    При загрузке заполняется следующее:

    ФИО физ.лица, дата рождения, пол, ИНН,СНИЛС, Гражданство.

    История смены ФИО;

    История паспортных данных и прочих документов;

    Контактная информация (адрес, телефон, и т.д.).

    Reply
  2. alex_bitti

    (1) да кто ж против, но уверен что правилами писать обмены проще и быстрее, после того как более менее освоил конвертацию лет 12 назад практически не пишу обратотки для целей обмена

    Reply
  3. mrflatcher

    Работа проделана большая, за что спасибо, но не до конца. В правиле конвертации отсутствуют правила переноса для регистров сведений «ГражданствоФизическихЛиц» и «ФИОФизическихЛиц». Справочник «ФизическиеЛица» — зачем переносить код из одной базы в другую? Лучше удалить из конвертации свойств «код» и добавить в настройках для ПКО «ФизическиеЛица» — «Автоматически генерировать номер или код, если он не задан». И может быть в полях поиска ПКО «ФизическиеЛица» добавить:

    Если НомерВариантаПоиска = 1 тогда
    
    Если ЗначениеЗаполнено(СвойстваПоиска[«ИНН»]) Тогда
    СтрокаИменСвойствПоиска = «ИНН»;
    ИначеЕсли ЗначениеЗаполнено(СвойстваПоиска[«СтраховойНомерПФР»]) Тогда
    СтрокаИменСвойствПоиска = «СтраховойНомерПФР»;
    Иначе
    СтрокаИменСвойствПоиска = «ЭтоГруппа, ДатаРождения, Наименование»;
    КонецЕсли;
    
    ИначеЕсли НомерВариантаПоиска = 2 тогда
    
    Если ЗначениеЗаполнено(СвойстваПоиска[«СтраховойНомерПФР»]) Тогда
    СтрокаИменСвойствПоиска = «СтраховойНомерПФР»;
    Иначе
    СтрокаИменСвойствПоиска = «ЭтоГруппа, ДатаРождения, Наименование»;
    КонецЕсли;
    
    Иначе
    
    СтрокаИменСвойствПоиска = «ЭтоГруппа, ДатаРождения, Наименование»;
    
    КонецЕсли;

    Показать

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *