Имя: Пароль:
1C
1С v8
v8: Синхронизация справочника "Подразделения организаций"
,
0 lia171
 
30.07.13
07:46
Из ЗУП в УПП настроен односторонний обмен данными (выгружаются кадровые документы), правила были созданы через конфигурацию "Конвертация данных". Первоначальная синхронизация "Подразделений организаций" была по коду и наименованию, при этом в приемнике в РС "Соответствие объектов для обмена" создались ссылки в другой ИБ. Сейчас необходимо настроить сопоставление Подразделений организации по внутреннему ИД, без поиска по  остальным полям. Выставляю в КД поиск по внутр ИД, запускаю обмен и появляется дубль с таким же ИД (Ссылкой в другой ИБ). Пробовал чистить РС "Соответствие объектов для обмена" и перезаписывал Подразделения орг. та же история. Как же их синхронизировать?
1 Godofsin
 
30.07.13
07:48
Выгрузить полностью все элементы, убрать дубли, оставив элементы с правильным ГУИД.
2 GenV
 
30.07.13
07:51
1+ чтобы не путаться добавить какое-нибуть отличие в названии или т.п.
+ если подр. много, то замену можно сделать скопом с помощью регистра "Соответствие объектов для обмена" и типовой обработку - написать код.
3 lia171
 
30.07.13
07:59
Подразделений очень много, ликвидация двойников осложнится еще и тем что в "Аналитике вида учета" нужно будет выставить нужное подразделение иначе полетит РАУЗ. Не совсем понял про вариант с РС "Соответствие объектов для обмена".
4 lia171
 
30.07.13
08:11
Еще не совсем понятно как происходит поиск по ИД через "Соответствие объектов для обмена", ссылка в другой ИБ есть, но подразделение по ней не находится а создается новое точно такое же.
5 GenV
 
30.07.13
08:26
(3) В РС хранится ссылка на объект в текущей базе и УИД объекта в другой базе. Если будешь делать перенос по УИД, то новые объекты из другой базы будут с указанными УИД. Т.е. ты можешь получить готовую таблицу "Ссылка из этой базы", "Ссылка из другой базы", которую загрузишь в типовую обработку "Поиск и замена значений". Остальное сделает обработка.
6 GenV
 
30.07.13
08:29
(4) Не знаю как у тебя правила реализованы, но по идее КД проверяет наличие объекта с таким УИД в регистре и если он есть, то использует ссылку из регистра. Может галка не замещать сущ. объекты стоит в ПКО?
7 IKSparrow
 
30.07.13
08:46
Да синхронизируй по наименованию и не мучайся.
8 lia171
 
30.07.13
08:57
В правилах стоит единственная галка "Искать объект приемника по внутреннему ИД". Поиск по ИД работает только после того как в правилах убираю поиск по ключевым полям, при этом создается дубль.
Все ж не понял как загрузить таблицу РС "Соотв. объектов для обмена" в в обработку...

по наименованию не вариант, совпадающих по имени много..
9 ЧашкаЧая
 
30.07.13
09:20
(9) Перекидать ГУИД из источника в параметре, в приемнике искать по гуиду в РС СоответсвияОбъектовДляОбмена в событии ПоляПоиска - необходимо заполнить этот регистр связями для существующих объектов. Соответственно удалить новые задублированные элементы.

Поиск по ГУИДу выполняет обработка загрузки. Если элемент найден - этот элемент загружался ранее (после измененя правил) и имеет правильный ГУИД. Элемент ненайден - вызывается код из ПоляПоиска, где выполняется поиск по РС, если там есть связь кидаем ссылку подразделения в переменную СсылкаНаОбъект -- объект найден, если же переменную не заполнить то загрузка сама создаст новый элемент с тем ГУИДом что и в источнике -- при следующем обмене уже найдет по ГУИДу.
10 lia171
 
30.07.13
15:07
сравнил ИД в РС "Соответствие объектов для обмена" и ИД элемента справочника, они разные, т.е. в РС он в зашифрованном виде, как его сравнить с ИД элемента?