При настройке обмена данными между конфигурациями 1С:Управление нашей фирмой (УНФ) и 1С:Бухгалтерия предприятия (БП) специалисты нередко сталкиваются с ситуацией, когда вторая или последующая настройка синхронизации блокируется ошибкой: «Обнаружено дублирование настроек синхронизации». Это происходит даже в тех случаях, когда обмены настраиваются по разным организациям или с разными информационными базами. Для автоматического выполнения регулярной синхронизации по расписанию без изменения самих конфигураций можно использовать программу регулярного обмена данными между базами 1С.
В этой статье мы подробно разберем, почему возникает данная проблема, и проанализируем пошаговые методы ее решения, опираясь на технические особенности платформы 1С 8.3.
Система синхронизации в современных конфигурациях 1С (использующих БСП — Библиотеку стандартных подсистем) идентифицирует удаленную базу не только по ее наименованию или префиксу, но и по внутреннему уникальному идентификатору (UUID/GUID). Рассмотрим основные причины конфликта:
ЭтотУзел). Если в двух разных настройках система видит одинаковые коды для этих узлов, возникает логическая ошибка.Это самый простой и штатный метод, который помогает в большинстве случаев. Разберем, как выполнить эту процедуру правильно:
УНФ или БП, выступающая инициатором).Важно понимать: это действие меняет код элемента ЭтотУзел в плане обмена. После смены кода рекомендуется перезапустить синхронизацию. Если ошибка сохраняется, значит проблема лежит глубже — на уровне идентификаторов базы.
Если вы работаете на копиях баз, система при первом запуске выдает запрос: «Информационная база перемещена или это копия?». Если вы выбрали вариант «Это копия», 1С блокирует внешние соединения и может изменять логику работы идентификаторов для безопасности данных.
Проанализируем ситуацию, когда базы имеют одинаковые GUID. Чтобы это исправить, нам потребуется убедиться, что у каждой базы уникальный ИдентификаторИнформационнойБазы. Для проверки и изменения служебных параметров можно использовать следующий подход:
БП (приемник).УНФ.Иногда штатные средства не видят «мусорные» записи в базе. Нам необходимо проверить несколько ключевых регистров, где хранятся настройки узлов. Для этого воспользуемся функцией «Функции для технического специалиста» (или «Все функции»):
Проанализируем записи в следующих регистрах:
РегистрСведений.ОбщиеНастройкиУзловИнформационныхБаз: Здесь критически важно поле Удаленный идентификатор. Если вы видите две записи с одинаковым GUID в этом поле, система будет считать их одной базой.РегистрСведений.ПсевдонимыПредопределенныхУзлов: Проверьте, нет ли здесь дублирующих записей для вашего плана обмена.РегистрСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов: Здесь хранятся соответствия объектов.Если обнаружены старые или некорректные записи, относящиеся к неиспользуемым настройкам обмена, их следует аккуратно удалить. Для очистки таких данных и исправления ошибок синхронизации на уровне регистров можно использовать универсальную обработку для корректировки регистра соответствия объектов.
Если стандартная кнопка «Новый код» не активна или не помогает, мы можем воспользоваться обработкой ГрупповоеИзменениеРеквизитов. Рассмотрим алгоритм действий:
СинхронизацияДанныхЧерезУниверсальныйФормат).ЭтотУзел (обычно он отображается жирным шрифтом или имеет соответствующую пометку).Как упоминалось в обсуждениях на форумах, для глубокого анализа структуры узлов полезно использовать консоли или специализированные инструменты (например, Инструменты разработчика). Проанализируем возможности программного изменения объектов:
С помощью консоли запросов мы можем быстро увидеть все узлы плана обмена, включая скрытые и помеченные на удаление:
ВЫБРАТЬ
ПланОбмена.Ссылка КАК Узел,
ПланОбмена.Код КАК Код,
ПланОбмена.Наименование КАК Наименование,
ПланОбмена.ЭтотУзел КАК ЭтоТекущаяБаза
ИЗ
ПланОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат КАК ПланОбмена
Если в результате запроса вы видите два узла с одинаковыми кодами или непонятными идентификаторами, это и есть причина ошибки. В таком случае программное переименование кода через Объект.Записать() поможет разорвать этот конфликт. При необходимости быстро скорректировать реквизиты узлов можно применить обработку для изменения префикса и кода узла информационной базы.
Подводя итог, можно составить краткий чек-лист для исправления дублирования:
ОбщиеНастройкиУзловИнформационныхБаз на наличие дублей в поле идентификаторов.Следуя этим шагам, мы сможем корректно настроить синхронизацию данных между УНФ и несколькими базами БП, избежав конфликтов в механизмах обмена.