Как убрать окно сопоставления объектов при синхронизации данных в 1С?

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

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

Причина 1: Интерактивный режим выполнения обмена

Разберем самый распространенный сценарий. Окно сопоставления объектов по своей природе является интерактивным инструментом. Это означает, что оно предназначено для показа пользователю в тот момент, когда он запускает процесс обмена вручную через интерфейс «Синхронизация данных». Если вы нажимаете кнопку «Синхронизировать», система предполагает, что вы готовы участвовать в процессе и разрешать спорные ситуации.

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

  1. Перейдем в раздел Администрирование — Синхронизация данных — Настройки синхронизации данных.
  2. Выберем нужную настройку и откроем Сценарии синхронизации данных.
  3. Создадим или отредактируем существующий сценарий, установив флаг Использовать расписание.
  4. Настроим расписание (например, каждые 15 минут), используя обработку для управления регламентными заданиями.

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

Причина 2: Сбои в регистре «Соответствия объектов информационных баз»

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

Если при переходе на обмен через каталог записи в этом регистре не обновились или у пользователя, под которым запускается служба 1С, недостаточно прав на запись в этот регистр, сопоставление не будет «запоминаться». Проанализируем ситуацию: вы сопоставляете объекты вручную, нажимаете «ОК», обмен завершается, но запись в регистр не создается. При следующем обмене система снова видит «новые» (с ее точки зрения) объекты и опять просит сопоставления.

Решение: Проверьте права доступа и убедитесь, что записи в регистре создаются. В некоторых случаях помогает полная очистка соответствий для проблемных объектов и их повторное ручное сопоставление «в последний раз» при условии корректной работы фонового задания.

Причина 3: Настройки правил в «Конвертации данных»

Рассмотрим более глубокую техническую причину, связанную с правилами обмена (XML). Если вы используете нетиповые правила или в типовые были внесены изменения, в них может быть установлен флаг «Продолжить поиск по полям поиска, если по идентификатору объект не найден».

В правилах обмена для каждого объекта (например, документа «Реализация») существуют Поля поиска (обычно это Номер и Дата). Если в настройках ПВД (Правил выгрузки данных) или ПКС (Правил конвертации свойств) стоит признак «Показывать в окне сопоставления при наличии сомнений», то система будет выводить окно каждый раз, когда данные кажутся ей неоднозначными.

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

Причина 4: Очистка кэша метаданных

Иногда причина кроется в банальном программном сбое или «зависании» кэша. Посмотрим на пример ситуации из практики: настройки обмена были изменены, но старые параметры «застряли» в локальном кэше пользователя или сервера.

Попробуем выполнить следующие действия:

  1. Очистить локальный кэш 1С на компьютере (удобно использовать батник для очистки кэша).
  2. Если используется серверный вариант — перезапустить службу 1C:Enterprise 8.3 Server Agent.
  3. В файле обмена (обычно message_XXX_YYY.xml) может содержаться некорректная информация о версии правил. В этом случае поможет удаление текущей настройки синхронизации и создание новой «с нуля» через тот же сетевой каталог.

Причина 5: Регистрация «зависших» изменений

Бывает так, что в базе накоплено огромное количество объектов, зарегистрированных к обмену, которые по каким-то причинам не могут быть приняты другой стороной. Проанализируем это с помощью стандартной обработки «Регистрация изменений для обмена».

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

Подводим итоги

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

  1. Обязательно настройте регламентное задание (расписание). Это самый эффективный способ подавить вывод любых диалоговых окон.
  2. Проверьте, что в настройках синхронизации не установлен флаг «Запрашивать подтверждение перед загрузкой» (если такая опция доступна в вашей конфигурации).
  3. Убедитесь, что поиск объектов идет в первую очередь по Внутреннему идентификатору, а не только по полям поиска.
  4. В случае повторения проблемы проверьте регистр соответствий.

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

← На главную