Почему при синхронизации данных дублируются группы номенклатуры и как это исправить

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При настройке регулярного обмена между независимыми базами 1С:Розница и 1С:Бухгалтерия предприятия специалисты нередко сталкиваются с ситуацией, когда элементы номенклатуры сопоставляются корректно, а группы справочника (папки верхнего уровня и подгруппы) задваиваются при каждой синхронизации. Проанализируем технические причины такого поведения и разберем по шагам варианты устранения дублей как через правила обмена, так и штатными средствами платформы.

Технические причины задвоения папок справочника

Выясним причину, почему стандартные механизмы могут создавать дублирующие группы при абсолютно одинаковых кодах и наименованиях:

  1. Несовпадение внутренних идентификаторов (GUID): Если учет в базах велся параллельно до настройки обмена, элементы и группы имеют разные УникальныйИдентификатор. При включенном поиске по идентификатору конфигурация-приемник сначала пытается найти объект по GUID, не находит его и создает новый.
  2. Особенности рекурсивного поиска по родителю в правилах КД 2: Когда в правиле конвертации объекта (ПКО) включен поиск по полю Родитель, для корневых папок верхнего уровня значение родителя является пустой ссылкой. При обработке условий поиска это может вызывать сбой сопоставления, в результате чего создается новая корневая папка, а вслед за ней дублируется вся иерархия подгрупп и вложенных товаров.
  3. Записи в регистре «Соответствия объектов информационных баз»: После первого неудачного сеанса загрузки соответствие между объектом источника и созданным дублем фиксируется в служебном регистре сведений. Последующие обмены будут обращаться к этим сохраненным связям независимо от дальнейших изменений полей поиска.

Способ 1. Корректировка правил в конфигурации «Конвертация данных»

Рассмотрим подробнее, как разделить логику поиска для обычных позиций номенклатуры и для папок справочника в конфигурации «Конвертация данных 2.1».

  1. Разделение ПКО для элементов и групп: Создадим два отдельных правила конвертации. Для групп номенклатуры настроим поля поиска строго по реквизитам Наименование, ЭтоГруппа и при необходимости Код, отключив флаг поиска по внутреннему идентификатору и реквизиту Родитель. В основном правиле для элементов в конвертации свойства Родитель укажем созданное ПКО для групп.
  2. Настройка программного поиска в обработчике «ПоляПоиска»: В ПКО справочника Номенклатура перейдем на вкладку событий и добавим код в обработчик ПоляПоиска (или ПриУстановкеПолейПоиска):
    
    Если СвойстваПоиска["ЭтоГруппа"] = Истина Тогда
        СтрокаИменСвойствПоиска = "Наименование, ЭтоГруппа";
    Иначе
        СтрокаИменСвойствПоиска = "Код, Родитель, ЭтоГруппа";
    КонецЕсли;
    
  3. Обновление правил из актуального релиза: Если используются типовые правила, проверим наличие обновлений конфигураций или актуальных внешних правил конвертации от разработчиков, в которых ошибки сопоставления иерархии уже устранены.

Способ 2. Интерактивное сопоставление и очистка регистра сведений

Разберем порядок действий в пользовательском режиме «1С:Предприятия» для устранения последствий некорректного сопоставления.

  1. Очистка ошибочных сопоставлений: Откроем регистр сведений Соответствия объектов информационных баз и удалим записи, связывающие номенклатурные группы с дублями для настраиваемого узла плана обмена.
  2. Ручное сопоставление данных: Запустим синхронизацию в интерактивном режиме. На этапе сопоставления откроем таблицу справочника Номенклатура, отфильтруем список по группам и вручную свяжем папки источника и приемника до выполнения записи объектов.
  3. Удаление существующих дублей: Перейдем в раздел «Администрирование» — «Обслуживание» — «Корректировка данных» и запустим обработку Поиск и удаление дублей. Выберем справочник Номенклатура, настроим поиск дублей по совпадению наименования и признака Это группа, после чего выполним замену ссылок и пометку дублей на удаление.
← На главную