Экономлю время на разработку правил:
Копирую ПКО, ставлю новому флаг "Продолжить поиск по полям поиска, если по идентификатору объект не найден". Далее как обычно и получаю файл данных для загрузки. Но в нем появляется на первых взгляд ерунда(два правила с одними типами, первое не рабочее):
В список "ПравилаКонвертацииОбъектов" попадают два ПКО, хотя в ПВД и во всех ссылках используется только одно - моё новое. Все работает, все ок. Но флаг "Продолжить поиск по полям поиска, если по идентификатору объект не найден" работать не будет. Потому что первым стоит правило у которого нет этого флага. Просто в момент загрузки при разборе тегов первым и единственным будет правило из первого по расположению. Там нет нужного мне поиска. Дальше для этого типа, в моём случае тип "ПодразделенияОрганизаций", поиска не будет для правил поиска. Вот эта функция (Виновница в измене :) ) и в ней можно было бы поправить код:
Функция ОпределитьПоТипуОбъектаИспользоватьДополнительныйПоискПоПолямПоиска(ТипСсылкиСтрокой)
ЗначениеСоответствия = мСоответствиеДопПараметровПоиска.Получить(ТипСсылкиСтрокой);
Если ЗначениеСоответствия <> Неопределено Тогда
Возврат ЗначениеСоответствия;
КонецЕсли;
Попытка
Для Каждого Элемент Из Правила Цикл
Если Элемент.Значение.Приемник = ТипСсылкиСтрокой Тогда
Если Элемент.Значение.СинхронизироватьПоИдентификатору = Истина Тогда
НужноПродолжитьПоиск = (Элемент.Значение.ПродолжитьПоискПоПолямПоискаЕслиПоИдентификаторуНеНашли = Истина); мСоответствиеДопПараметровПоиска.Вставить(ТипСсылкиСтрокой, НужноПродолжитьПоиск);
Возврат НужноПродолжитьПоиск;
КонецЕсли;
КонецЕсли;
КонецЦикла;
мСоответствиеДопПараметровПоиска.Вставить(ТипСсылкиСтрокой, Ложь);
Возврат Ложь;
Исключение
мСоответствиеДопПараметровПоиска.Вставить(ТипСсылкиСтрокой, Ложь);
Возврат Ложь;
КонецПопытки;
КонецФункции
Показать
Цикл ещё не закончился, но слово Возврат НужноПродолжитьПоиск; прекращает поиск.
Эта проблема была не только у меня, например здесь v8: Обмен. Конвертация данных. Узел "Ссылка". Атрибут "ПродолжитьПоиск" . Там предлагают создать атрибут, но этого не понадобится, если удалить полностью не нужное ПКО из правил или его тоже поправить.
тоже столкнулся с этой проблемой было 2 ПКО пользователи>пользователи и физлица>пользователи, первое пко не использовалось и в нем не был установлен флаг "продолжить поиск по полям поиска...", для второго ПКО этот флаг был установлен и в нем не срабатывал поиск по полям если в нем установить флаг "искать по внутреннему идентификатору...". Удалил первое ПКО, поиск по полям заработал
и в 2017 году в версии 2.1.8.2 это до сих пор не исправлено, столкнулся с такой же проблемой первым правилом помечал объекты нужен был поиск только по УИД а вторым объекты переносил с простой синхронизацией по полю код, так из-за того что правило было выше по приоритету поиск брался по УИД и все опять задваивалось, надо или удалять ПКО или ставить в них одинаковый поиск