До этого был настроен обмен между базами посредством Универсального обмена данными из УПП 8.2 в Зик 7.7. Синхронизация велась по UID из 8.2 в реквизит "UID" в 7.7.
А теперь компания решила полностью отказаться от ЗиК 7.7.
Я решил перенести всю инфу из справочника Сотрудники и др. подчиненных справочников из 7.7 в 8.2 используя ту же синхронизацию.
Но, просмотрев кучу форумов и статей, перебробовав несколько вариантов, решил писать свой, ибо ни один из них не подошел.
И так:
ПКО «Сотрудники —> СотрудникиОрганизаций» ничего не пишем.
ПКС «UID»: Источник — UID, Приемник — <пусто>, галка Поиск. Модуль «ПередВыгрузкой»:
УзелСвойства = СоздатьУзел(«Свойство»);
УстановитьАтрибут(УзелСвойства, «Имя», «{УникальныйИдентификатор}»);
УстановитьАтрибут(УзелСвойства, «Тип», «Строка»);
ЗаписатьЭлемент(УзелСвойства, «Значение», Источник.UID);
ДобавитьПодчиненный(УзелКоллекцииСвойств, УзелСвойства);
Отказ = 1; // Само свойство выгружать не нужно
Вот и всё! Ничего в модуле Обработки «Универсальный обмен данными» не меняем!
Справочник Сотрудники из 7.7 благополучно синхронизировался с восьмерочным. Все реквизиты для переноса описываем как обычно согласно ваших правил.
Смотрите картинки.
Думаю задача единоразовая/узкоспециализированная. Сомнительно, что у кого-то встанет задача синхронизации двусторонней из 7.7 в 8.2 и обратно. Но за пример спасибо 😉
(1) insurgut, Регулярно возникает такая задача, приходится добавлять доп. реквизиты
Огромное спасибо за красивое решение! Настроил механизм произвольной синхронизации элементов справочников между базами. Как соответствие храню строку UUID элемента из базы-приемника и при помощи вашего метода при выгрузке сразу передаю в файл нужные ссылки. Класс!
(1) insurgut, по-моему это универсальное решение подмены ссылки при обменах по технологии конвертации данных, а синхронизация 7.7 и 8.2 приведена просто как один из примеров.