Как настроить синхронизацию между 1С:Бухгалтерией и копией базы 1С:ЗУП при возникновении ошибки дублирования?

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

При активной работе в экосистеме 1С часто возникает необходимость подключить к одной базе 1С:Бухгалтерия предприятия (БП) несколько баз 1С:Зарплата и управление персоналом (ЗУП). Проблемы начинаются тогда, когда вторая база ЗУП была создана путем простого копирования первой. В этом случае при попытке настройки обмена через EnterpriseData система выдает ошибку, сообщая, что такая синхронизация уже существует или дублируется.

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

Выясним причину проблемы: почему 1С «видит» дубликаты

Когда мы создаем копию информационной базы (через выгрузку .dt или копирование файла 1Cv8.1CD), новая база наследует все внутренние идентификаторы оригинала. Для механизмов синхронизации ключевыми являются следующие параметры:

  1. Уникальный идентификатор информационной базы (GUID): Глобальный номер, который присваивается базе при создании. Если он совпадает у двух разных баз, БП будет считать их одним и тем же источником.
  2. Предопределенный узел «ЭтотУзел» в плане обмена: В каждом плане обмена (например, СинхронизацияДанныхЧерезУниверсальныйФормат) есть элемент, представляющий текущую базу. Его реквизит Код (префикс) часто остается идентичным в копии.
  3. Константы идентификации: Внутренние параметры, такие как ИдентификаторИнформационнойБазы, которые используются при формировании заголовков пакетов обмена.

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

Шаг 1: Подготовка базы-копии к настройке

Проанализируем ситуацию в базе ЗУП, которая является копией. Прежде всего, необходимо убедиться, что система понимает, что она больше не является «той самой» первой базой. При первом запуске копии 1С обычно спрашивает: «Информационная база перемещена или это копия?». Нужно всегда выбирать вариант «Это копия». Это активирует механизмы защиты и блокирует выполнение регламентных заданий, чтобы они не пересекались с основной базой.

Если этот этап был пропущен, проверим состояние блокировок. Разберем, как сбросить настройки, которые могут мешать обмену:

  1. Перейдем в раздел Администрирование — Обслуживание — Регламентные операции.
  2. Если работа с внешними ресурсами заблокирована, система предложит ее разблокировать. Для настройки обмена это необходимо сделать.

Шаг 2: Изменение кода узла через групповое изменение реквизитов

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

  1. Откроем обработку «Групповое изменение реквизитов» (ее можно найти через Все функции или Функции для технического специалиста в разделе Стандартные).
  2. В поле «Изменять:» выберем нужный план обмена. Обычно это Синхронизация данных через универсальный формат.
  3. Нажмем гиперссылку «Все элементы» и добавим отбор, чтобы изменить только узел текущей базы. Нам нужен элемент, у которого признак ЭтотУзел равен Да (Истина).
  4. Найдем в списке реквизитов поле Код.
  5. Установим новое уникальное значение (например, если в первой базе был код «ЗП», во второй установим «ЗК»).
  6. Нажмем кнопку «Изменить реквизиты».

После этой манипуляции 1С:Бухгалтерия при попытке настройки синхронизации увидит другой идентификатор узла и позволит создать новую настройку без ошибок о дублировании.

Шаг 3: Программное обновление идентификатора базы (GUID)

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


// Программный код для обновления GUID информационной базы
Метод = ИнформационнаяБазаВыделить();
Сообщить("Базе присвоен новый уникальный идентификатор.");

Важно: Этот метод следует использовать с осторожностью, так как он может повлиять на другие связанные сервисы (например, 1С-ЭДО или 1С-Отчетность), которые «привязаны» к старому идентификатору.

Шаг 4: Очистка старых связей и регистраций

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

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

Особенности обмена через Enterprise Data

Разберем важный нюанс работы формата EnterpriseData. При обмене данными через файлы (если не используется прямое подключение) префикс базы используется в названии файлов обмена (например, Message_ЗП_БП.xml). Если вы не измените префикс (код узла) во второй базе ЗУП, файлы от двух разных баз будут называться одинаково. Это приведет к тому, что вторая база будет перезаписывать данные первой в каталоге обмена, и в Бухгалтерию будут попадать некорректные пакеты данных.

Именно поэтому использование уникальных префиксов для каждой базы ЗУП является обязательным условием при работе с одной базой БП.

Резюме: Если вы столкнулись с ошибкой «дублирование синхронизации», не пытайтесь решить ее только переименованием организации. Основной инструмент — это изменение Кода элемента в Плане обмена, где признак ЭтотУзел установлен в значение Истина. Использование обработки Групповое изменение реквизитов является самым быстрым и эффективным способом решения этой задачи без привлечения сложного программирования.

← На главную