Как настроить синхронизацию между двумя базами УТ 11 для переноса справочников без документов?

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

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

Метод 1. Использование механизма распределенных информационных баз (РИБ)

Механизм РИБ является классическим способом синхронизации идентичных конфигураций. Однако в нашем случае нам нужно передавать только справочники. Разберем этот процесс по шагам.

Во-первых, проанализируем настройки Плана обмена. В конфигураторе необходимо убедиться, что используемый план обмена включает в свой состав все необходимые справочники и регистры сведений. Если мы хотим исключить документы, мы можем настроить фильтрацию. В стандартном РИБ «по магазину» или «по рабочему месту» это сделать сложнее, поэтому часто создается подчиненный узел, в котором документы просто не регистрируются к выгрузке.

Во-вторых, настроим односторонний обмен. Чтобы документы, создаваемые в новой базе, не попадали в основную рабочую базу, в настройках синхронизации данных в интерфейсе «1С» следует ограничить правила отправки. В рабочей базе мы настраиваем выгрузку справочников, а в новой базе — запрещаем отправку любых данных обратно в «центр».

В-третьих, решим вопрос с «отщеплением» базы. Когда новая база полностью «догонит» рабочую (то есть все изменения справочников будут перенесены), обмен можно прекратить, а базу сделать автономной. Для этого в новой базе необходимо программно разорвать связь с главным узлом. Рассмотрим пример кода, который выполняется во внешней обработке или консоли кода:


// Снятие признака подчиненности узла РИБ
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);

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

Метод 2. Синхронизация через универсальный формат (EnterpriseData)

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

Проанализируем алгоритм настройки:

  1. Перейдем в раздел Администрирование — Синхронизация данных.
  2. Создадим новую синхронизацию, выбрав пункт «Другая программа».
  3. Настроим прямое подключение к базе-приемнику (если они находятся в одной сети) через COM-соединение. Это существенно ускорит процесс «догона», так как исключит промежуточное сохранение в XML-файлы.
  4. В правилах отправки данных нажмем на ссылку «Изменить состав отправляемых данных». Здесь мы можем вручную снять регистрацию со всех документов и оставить только справочники.

Преимущество этого метода в том, что поиск объектов происходит по GUID (уникальным идентификаторам). Это гарантирует, что номенклатура «Товар 1» в рабочей базе будет соответствовать «Товару 1» в новой базе, даже если их наименования будут изменены. Выясним причину, по которой это важно: при несовпадении GUID в новой базе могут возникнуть дубли, что приведет к некорректной работе заказов и остатков в будущем.

Метод 3. Использование обработки «Выгрузка и загрузка данных XML»

Если задача «догона» не требует ежеминутного обновления, а выполняется периодически, можно воспользоваться типовой обработкой ВыгрузкаЗагрузкаДанныхXML.epf. Она работает в ручном режиме и позволяет переносить данные между одинаковыми конфигурациями с полным сохранением идентификаторов ссылок.

Посмотрим на особенности этого метода:

Как ускорить процесс «догона» (Регистрация изменений)

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

Рассмотрим, как с ней работать для нашей задачи:

  1. Откроем обработку в рабочей базе, выбрав наш узел обмена (созданный для новой базы).
  2. Найдем в списке дерево метаданных.
  3. Нажмем правой кнопкой мыши на корневой узел «Справочники» и выберем «Зарегистрировать все объекты этого типа».
  4. После этого запустим синхронизацию. Программа увидит, что все справочники помечены как измененные, и отправит их в новую базу.

Проанализируем ситуацию с большими объемами данных. Если справочник номенклатуры содержит сотни тысяч позиций, первая синхронизация может занять длительное время. В этом случае мы рекомендуем использовать Web-сервисы для передачи пакетов данных, так как это соединение более устойчиво к разрывам, чем прямое COM-подключение.

Нюанс с регистрами и остатками

Важно помнить, что если вы переносите справочники без документов, у вас не будет остатков товаров и взаиморасчетов, так как они формируются документами. Однако некоторые важные данные хранятся в Регистрах сведений. Проверьте, чтобы в план обмена были включены:

Если эти регистры не перенести, справочники в новой базе будут «пустыми» в плане функциональности (без цен и картинок).

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

← На главную