При настройке обмена данными между конфигурациями 1С пользователи часто сталкиваются с ситуацией, когда при каждом сеансе синхронизации система настойчиво предлагает выполнить сопоставление объектов вручную. Это происходит даже в тех случаях, когда объекты, казалось бы, уже были синхронизированы ранее. Особенно часто проблема проявляется при переходе с прямого подключения к базе на обмен через сетевой каталог или FTP. В данной статье мы подробно разберем, почему возникает это окно и как автоматизировать процесс, избавившись от лишних действий.
Разберем самый распространенный сценарий. Окно сопоставления объектов по своей природе является интерактивным инструментом. Это означает, что оно предназначено для показа пользователю в тот момент, когда он запускает процесс обмена вручную через интерфейс «Синхронизация данных». Если вы нажимаете кнопку «Синхронизировать», система предполагает, что вы готовы участвовать в процессе и разрешать спорные ситуации.
Для решения этой проблемы проанализируем настройки запуска. Нам необходимо перевести обмен в фоновый режим. Рассмотрим, как это сделать:
Когда обмен выполняется регламентным заданием (в фоновом режиме), 1С технически не может вывести диалоговое окно на экран. В этом случае система использует алгоритмы автоматического сопоставления, а при невозможности однозначно связать объекты — просто фиксирует конфликт в журнале регистрации или в специальном разделе «Конфликты», не прерывая процесс обмена.
Выясним, где именно 1С хранит информацию о том, что объект в Базе А соответствует объекту в Базе Б. Для этого используется специальный служебный регистр сведений СоответствияОбъектовИнформационныхБаз. В нем записываются уникальные идентификаторы (GUID) объектов обеих баз.
Если при переходе на обмен через каталог записи в этом регистре не обновились или у пользователя, под которым запускается служба 1С, недостаточно прав на запись в этот регистр, сопоставление не будет «запоминаться». Проанализируем ситуацию: вы сопоставляете объекты вручную, нажимаете «ОК», обмен завершается, но запись в регистр не создается. При следующем обмене система снова видит «новые» (с ее точки зрения) объекты и опять просит сопоставления.
Решение: Проверьте права доступа и убедитесь, что записи в регистре создаются. В некоторых случаях помогает полная очистка соответствий для проблемных объектов и их повторное ручное сопоставление «в последний раз» при условии корректной работы фонового задания.
Рассмотрим более глубокую техническую причину, связанную с правилами обмена (XML). Если вы используете нетиповые правила или в типовые были внесены изменения, в них может быть установлен флаг «Продолжить поиск по полям поиска, если по идентификатору объект не найден».
В правилах обмена для каждого объекта (например, документа «Реализация») существуют Поля поиска (обычно это Номер и Дата). Если в настройках ПВД (Правил выгрузки данных) или ПКС (Правил конвертации свойств) стоит признак «Показывать в окне сопоставления при наличии сомнений», то система будет выводить окно каждый раз, когда данные кажутся ей неоднозначными.
Проверим настройки поиска объектов в базе-приемнике. Если выключена опция ИскатьОбъектПоВнутреннемуИдентификатору, 1С игнорирует уникальный GUID и всегда пытается найти объект по реквизитам. Любое минимальное расхождение (например, лишний пробел в номере или разница в секундах в дате) приведет к появлению окна сопоставления.
Иногда причина кроется в банальном программном сбое или «зависании» кэша. Посмотрим на пример ситуации из практики: настройки обмена были изменены, но старые параметры «застряли» в локальном кэше пользователя или сервера.
Попробуем выполнить следующие действия:
1C:Enterprise 8.3 Server Agent.message_XXX_YYY.xml) может содержаться некорректная информация о версии правил. В этом случае поможет удаление текущей настройки синхронизации и создание новой «с нуля» через тот же сетевой каталог.Бывает так, что в базе накоплено огромное количество объектов, зарегистрированных к обмену, которые по каким-то причинам не могут быть приняты другой стороной. Проанализируем это с помощью стандартной обработки «Регистрация изменений для обмена».
Если мы видим, что одни и те же документы постоянно висят в списке «К выгрузке», хотя они уже давно есть в обеих базах, это может провоцировать коллизии. Рекомендуем:
Для того чтобы окно сопоставления больше не беспокоило вас, придерживайтесь следующего алгоритма:
Следуя этим шагам, мы добьемся полностью автоматического обмена без необходимости ручного вмешательства в процесс синхронизации.