Как правильно разобраться, почему номенклатура при синхронизации 1С сопоставляется неверно?

Программист 1С v8.3 (Управляемые формы) 1С:Розница Торговля и дистрибуция
← На главную

При настройке обмена данными между несколькими информационными базами, например, когда одна конфигурация 1С:Бухгалтерия принимает данные из нескольких баз 1С:Розница, нередко возникают ситуации, когда объекты номенклатуры «склеиваются» некорректно. Мы часто сталкиваемся с вопросом: почему 1С считает, что товар из «Магазина 1» — это тот же самый товар, что и в «Магазине 2», даже если их идентификаторы, коды и наименования различаются?

Давайте подробно разберем, как именно работает механизм сопоставления и где искать записи, которые заставляют систему принимать такие решения.

Понимание механизма сопоставления объектов

В типовых механизмах обмена (БСП — Библиотека Стандартных Подсистем) поиск объектов происходит по строго заданным алгоритмам. Чтобы понять, почему система нашла «свое» соответствие, нужно понимать, как именно хранится информация о связи между базами.

При первой загрузке объекта 1С пытается найти существующий элемент в базе-приемнике. Если поиск проходит успешно, создается запись в специальном регистре, которая жестко закрепляет связь: объект А в базе 1 равен объекту Б в базе 2. Именно наличие такой записи является причиной того, что при последующих обменах система не создает дубли, а обновляет уже найденный элемент.

Регистры соответствия: где искать «связи»

Чтобы выяснить, почему номенклатура сопоставилась неверно, нам необходимо проанализировать регистры сведений, отвечающие за синхронизацию. Рассмотрим два основных инструмента, которые используются в современных конфигурациях 1С:

  1. СоответствиеОбъектовИнформационныхБаз — это классический регистр, который годами использовался в механизмах обмена. Он хранит пары идентификаторов объектов. Если ваша номенклатура ошибочно «подхватывается», первым делом проверьте записи в этом регистре.
  2. ПубличныеИдентификаторыСинхронизируемыхОбъектов — это более современный механизм. В новых редакциях конфигураций (например, Управление торговлей или Управление холдингом) разработчики постепенно отходят от использования СоответствиеОбъектовИнформационныхБаз в пользу этого регистра.

Важно помнить, что в одной и той же конфигурации могут одновременно работать оба этих регистра. Это происходит, если база настроена на обмен с несколькими разными информационными системами, каждая из которых использует свой протокол обмена.

Алгоритм диагностики проблемы

Если вы столкнулись с проблемой «неправильного» сопоставления, выполним следующие шаги вместе:

Шаг 1: Проверка регистров соответствия. Откройте регистр СоответствиеОбъектовИнформационныхБаз через «Функции технического специалиста». Отфильтруйте записи по номенклатуре, которая вызывает вопросы. Если вы обнаружите там запись, связывающую вашу номенклатуру с объектом, который физически находится в другом магазине, значит, проблема в «наследственности» данных. Возможно, база «Магазин 2» была когда-то создана копированием из «Магазина 1», из-за чего в регистрах остались записи с одинаковыми идентификаторами.

Шаг 2: Анализ правил конвертации. Если в регистрах нет явных ошибочных записей, значит, система находит объект «на лету» в процессе загрузки. Это происходит согласно правилам конвертации. Система пытается найти объект по полям поиска:


// Пример логики поиска объекта в правилах обмена:
// 1. Поиск по УИД (ссылке)
// 2. Поиск по коду
// 3. Поиск по артикулу
// 4. Поиск по наименованию

Если в настройках обмена (в конфигурации Конвертация данных) для справочника Номенклатура указано, что поиск ведется, например, только по Артикулу, то при совпадении артикулов в двух разных магазинах 1С автоматически свяжет их, даже если это абсолютно разные товары.

Как исправить ситуацию?

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

Таким образом, мы видим, что «странное» поведение системы при обмене — это не магия, а результат работы жестких алгоритмов поиска. Анализируя регистры СоответствиеОбъектовИнформационныхБаз и ПубличныеИдентификаторыСинхронизируемыхОбъектов, вы всегда сможете найти причину возникновения нежелательных связей между объектами номенклатуры.

← На главную