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

Системный администратор 1С v8.3 (Управляемые формы) Бухгалтерский учет
← На главную

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

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

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

Корень проблемы кроется в способе создания информационных баз. Каждая база 1С имеет свой уникальный внутренний идентификатор — GUID. Система синхронизации использует этот идентификатор, чтобы точно понимать, какая база является источником, а какая — приемником данных.

Если вторая база ЗУП была создана путем простого копирования файла первой базы (например, файла 1Cv8.1CD), то у обеих баз оказывается абсолютно одинаковый GUID. Для «1С:Бухгалтерии» обе эти базы выглядят как одна и та же. Из-за этого возникает конфликт:

  1. Вы настраиваете обмен БП ↔ ЗУП1. БП запоминает GUID базы ЗУП1.
  2. Вы настраиваете обмен БП ↔ ЗУП2. БП видит тот же самый GUID и считает, что вы пытаетесь настроить второй обмен с уже подключенной базой ЗУП1.
  3. В результате данные из ЗУП2 могут загрузиться в БП, но ответный файл-подтверждение БП формирует для первого узла обмена (для ЗУП1). База ЗУП2, естественно, не может его найти, и синхронизация не завершается корректно.

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

Решение 1: Создание базы из шаблона (правильный способ)

Наиболее корректный и надежный способ решить проблему — создать вторую информационную базу ЗУП правильно, чтобы она получила свой собственный уникальный GUID. Этот метод гарантирует отсутствие конфликтов в будущем.

Рассмотрим по шагам:

  1. Создайте новую пустую базу. В окне запуска 1С нажмите «Добавить» и выберите пункт «Создание новой информационной базы». Далее выберите «Создание информационной базы из шаблона» и укажите нужный шаблон конфигурации ЗУП. Этот процесс автоматически сгенерирует для новой базы уникальный идентификатор.
  2. Перенесите данные (если они уже есть). Если в скопированной базе ЗУП2 уже велась работа, данные из нее нужно перенести в новую, "чистую" базу. Для этого можно использовать стандартную универсальную обработку ВыгрузкаЗагрузкаДанныхXML.epf. Выгрузите данные из старой базы и загрузите их в новую.
  3. Настройте префиксы. Чтобы в будущем не путать документы и справочники, пришедшие из разных баз ЗУП, задайте для каждой из них уникальный префикс. Это делается в разделе администрирования: Настройки → Общие настройки → Префикс этой информационной базы. Например, для первой базы — «З1», для второй — «З2».
  4. Настройте синхронизацию заново. Удалите старые настройки обмена в БП и в обеих ЗУП. Создайте две новые синхронизации:
    • БП ↔ ЗУП1 (с отбором по первой организации).
    • БП ↔ ЗУП2 (с отбором по второй организации).

После этих действий «1С:Бухгалтерия» будет корректно распознавать обе базы ЗУП как две разные системы, и обмен данными будет работать штатно в обе стороны.

Решение 2: Принудительная смена GUID существующей базы

Если пересоздание базы и перенос данных кажутся слишком трудоемкими, существует альтернативный способ — программно изменить GUID у скопированной базы. Этот метод подходит для более опытных пользователей и администраторов.

Суть метода:

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

Внимание! Перед выполнением таких операций обязательно сделайте резервную копию информационной базы. Некорректное вмешательство может привести к потере данных.

После смены GUID необходимо также заново настроить синхронизацию, как описано в предыдущем пункте.

Полезный совет: как правильно выполнять начальное заполнение

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

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

При настройке синхронизации между БП ПРОФ и ЗУП Базовая на этапе настройки правил обмена достаточно указать, по какой конкретно организации нужно выгружать данные. Для этого в настройках синхронизации (на стороне БП) есть специальные фильтры. Вы просто создаете два обмена, и в каждом указываете свою организацию. Это штатный, простой и надежный механизм.

← На главную