Задвоение элементов справочников — одна из самых распространенных проблем при настройке обмена между конфигурациями 1С. Когда вы сталкиваетесь с тем, что после выгрузки в целевой базе создаются дубли групп или контрагентов, важно последовательно проанализировать настройки правил обмена. Давайте вместе разберем, почему это происходит и как настроить механизм поиска так, чтобы объекты сопоставлялись корректно.
Прежде чем приступать к исправлению, давайте поймем, почему система «решает», что объект нужно создать заново, а не найти существующий. В механизме Конвертации данных 2.0 за поиск объекта отвечает правило конвертации объекта (ПКО). Если условия поиска не заданы или заданы недостаточно строго, система может просто не «узнать» объект в приемнике.
Основные причины задвоения:
ИНН, КПП или Код), система не может гарантировать однозначную идентификацию.КА 2 или ERP) контрагенты тесно связаны с регистрами аналитики учета по партнерам. Если в процессе обмена создается запись в регистре, которая требует привязки к партнеру, система может принудительно создавать карточку контрагента, если поиск по ключевым полям не сработал однозначно.ЭтоГруппа: Если в правилах поиска участвует признак ЭтоГруппа, необходимо убедиться, что он корректно передается между базами. Если при загрузке значение этого признака определяется неверно, поиск группы будет идти не по той «ветке» справочника.Вы упомянули, что параметры «Искать по внутреннему идентификатору» и «Продолжить поиск по полям поиска» неактивны. Рассмотрим, как это исправить и настроить поиск правильно.
1. Актуализация настроек ПКО:
Параметры поиска часто блокируются, если в обработчике ПередПоиском прописан специфический код, который берет на себя управление процессом идентификации объекта. Если вам нужно использовать стандартный механизм, убедитесь, что обработчик ПередПоиском пуст или не содержит команд, переопределяющих поиск. Также проверьте, чтобы для справочника были корректно назначены Свойства с установленным признаком Поиск.
2. Настройка ключевых полей для контрагентов:
Для корректного сопоставления контрагентов недостаточно одного наименования. Наименования могут отличаться из-за пробелов, регистра или сокращений (например, «ООО» vs «Общество с ограниченной ответственностью»). Используйте комбинацию полей:
ИНН + КПП (для юридических лиц).Код (если коды в базах синхронизированы при начальной загрузке).3. Использование алгоритмов для сложного поиска:
Если стандартных полей недостаточно, вы можете написать логику в обработчике ПередПоиском. Рассмотрим пример того, как программно найти контрагента по ИНН, если стандартный поиск не справляется:
// Пример логики в обработчике ПередПоиском
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Справочник.Контрагенты ГДЕ ИНН = &ИНН И КПП = &КПП";
Запрос.УстановитьПараметр("ИНН", Источник.ИНН);
Запрос.УстановитьПараметр("КПП", Источник.КПП);
Результат = Запрос.Выполнить();
Если Не Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Выборка.Следующий();
ОбъектНайден = Истина;
СсылкаНаОбъект = Выборка.Ссылка;
КонецЕсли;
Если дубли уже созданы, их необходимо сначала очистить, иначе поиск будет продолжать работать некорректно. После очистки проведите следующие мероприятия:
КА и ERP обратите внимание на Ключи аналитики учета по партнерам. Если там остались ссылки на удаленные дубли, при очередном обмене система может снова попытаться восстановить их.Конвертации данных. Включите протоколирование обмена и посмотрите, по какому именно условию система принимает решение создать новый элемент. Если вы видите, что поле поиска пустое, значит, свойство не передается из источника.Помните, что ключ к успеху — это однозначность правил поиска. Если вы добьетесь того, что каждое ПКО будет иметь уникальный набор полей поиска, вероятность появления дублей снизится до нуля. Попробуйте поэтапно перенастроить правила для каждого проблемного справочника, начиная с самых критичных данных — Контрагентов и Договоров.