Для чего нужен регистр соответствия объектов информационных баз в 1С: для загрузки или выгрузки?

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

При настройке обмена данными и синхронизации между различными конфигурациями 1С часто возникает вопрос: для чего именно нужен регистр сведений СоответствияОбъектовИнформационныхБаз? Начинающие специалисты и администраторы баз данных предполагают, что он используется исключительно при загрузке для поиска существующих объектов. Давайте разберем эту тему подробно, проанализируем механику работы платформы и выясним истинное назначение данного регистра на всех этапах обмена. Для быстрой первичной настройки обмена в типовых конфигурациях можно использовать инструмент для быстрого создания узла плана обмена в БСП.

Какую проблему решает регистр соответствий?

Рассмотрим базовую архитектуру распределенных систем. В каждой информационной базе 1С элементы справочников, документы и другие ссылочные типы имеют свой внутренний уникальный идентификатор, который в терминологии 1С называется УникальныйИдентификатор (или GUID).

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

Чтобы избежать постоянного задвоения сущностей, система должна «запомнить», что внешний объект с идентификатором "X" из базы-источника — это то же самое, что локальный объект "Y" в базе-приемнике. Именно эту таблицу жестких связок в разрезе узлов обмена и хранит регистр сведений СоответствияОбъектовИнформационныхБаз. Это его фундаментальная и ключевая роль.

Механика работы при загрузке данных

Проанализируем ситуацию, когда система-приемник получает файл обмена. Участие регистра в процессе загрузки наиболее очевидно и работает по следующему алгоритму:

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

Поэтому первоначальное предположение о том, что регистр нужен для загрузки, абсолютно верно. Но это лишь половина картины.

Участие регистра в процессе выгрузки данных

На профильных форумах часто звучит ошибочное мнение, что при выгрузке программа просто «выбрасывает» GUID ссылки наружу, даже не глядя в регистр соответствий. Разберем по шагам, почему это не так и как регистр задействован при экспорте.

При выгрузке данных регистр выполняет несколько критически важных функций:

  1. Отправка «квитанций» о сопоставлении. Когда в базе-приемнике происходит успешное сопоставление (создается новая связка при загрузке), эта информация не должна остаться только в одной базе. При следующем ответном сеансе связи система отправляет информацию об этой связке обратно источнику. База-источник принимает эти данные и делает зеркальные записи в свой собственный регистр соответствий. Таким образом, обе базы "знают" о том, как связаны их объекты.
  2. Формирование правильных ссылок в пакете обмена. При выгрузке документов или справочников с табличными частями программа может обращаться к регистру для проверки наличия сопоставления ссылочных реквизитов (договоров, складов, статей затрат). Это необходимо для корректного формирования пакета выгрузки, особенно если используются сложные правила конвертации свойств, зависящие от того, был ли уже сопоставлен объект в базе-приемнике.

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

Интерактивное (ручное) сопоставление данных

Посмотрим на пример работы с помощником интерактивного сопоставления. Часто при первом обмене реквизиты объектов в двух базах отличаются из-за человеческого фактора. Например, в одной конфигурации контрагент заведен как "ООО Ромашка", а в другой — "Ромашка ООО". Алгоритмы поиска по строковым реквизитам могут не справиться с такой задачей и система "засомневается".

В этом случае платформа останавливает автоматический процесс и выводит пользователю окно ручного сопоставления. В этом окне отображаются две таблицы: данные из файла и данные локальной базы. Когда вы вручную сводите две строки в этом интерфейсе, подтверждая, что это один и тот же контрагент, результат ваших действий физически записывается всё в тот же регистр сведений СоответствияОбъектовИнформационныхБаз.

Развитие механизма в современных конфигурациях

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

В связи с переходом на новый формат функционал работы с соответствиями был расширен и частично вынесен в дополнительные структуры:

Появился регистр сведений ПубличныеИдентификаторыСинхронизируемыхОбъектов. Его задача — связывать внутренние ссылки локальной информационной базы 1С со строковыми универсальными идентификаторами (ID формата EnterpriseData). Главное отличие публичного ID от внутреннего GUID состоит в том, что он не зависит от конкретной базы 1С и понятен любым сторонним системам, включая сайты, мобильные приложения и учетные системы других вендоров.

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

← На главную