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