При развитии бизнеса часто возникает задача создания «чистой» информационной базы на основе уже существующей рабочей базы «1С:Управление торговлей 11». Основная сложность заключается в том, что справочная информация (номенклатура, партнеры, контрагенты, настройки сайтов) должна оставаться актуальной в обеих базах до момента полного перехода, в то время как документы переносить не требуется. Рассмотрим подробнее, как реализовать механизм, при котором новая база будет «догонять» рабочую в части справочников.
Механизм РИБ является классическим способом синхронизации идентичных конфигураций. Однако в нашем случае нам нужно передавать только справочники. Разберем этот процесс по шагам.
Во-первых, проанализируем настройки Плана обмена. В конфигураторе необходимо убедиться, что используемый план обмена включает в свой состав все необходимые справочники и регистры сведений. Если мы хотим исключить документы, мы можем настроить фильтрацию. В стандартном РИБ «по магазину» или «по рабочему месту» это сделать сложнее, поэтому часто создается подчиненный узел, в котором документы просто не регистрируются к выгрузке.
Во-вторых, настроим односторонний обмен. Чтобы документы, создаваемые в новой базе, не попадали в основную рабочую базу, в настройках синхронизации данных в интерфейсе «1С» следует ограничить правила отправки. В рабочей базе мы настраиваем выгрузку справочников, а в новой базе — запрещаем отправку любых данных обратно в «центр».
В-третьих, решим вопрос с «отщеплением» базы. Когда новая база полностью «догонит» рабочую (то есть все изменения справочников будут перенесены), обмен можно прекратить, а базу сделать автономной. Для этого в новой базе необходимо программно разорвать связь с главным узлом. Рассмотрим пример кода, который выполняется во внешней обработке или консоли кода:
// Снятие признака подчиненности узла РИБ
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
После выполнения этой команды база перестает считать себя подчиненной и становится полностью самостоятельной, что позволяет удалять настройки обмена без риска для данных.
Этот метод является более современным и гибким по сравнению с РИБ. Рассмотрим, почему он может быть предпочтительнее. Синхронизация через EnterpriseData (универсальный формат) позволяет обмениваться данными даже между разными версиями конфигураций (например, УТ 11.3 и УТ 11.4), а также дает возможность детально настроить состав отправляемых данных.
Проанализируем алгоритм настройки:
COM-соединение. Это существенно ускорит процесс «догона», так как исключит промежуточное сохранение в XML-файлы.Преимущество этого метода в том, что поиск объектов происходит по GUID (уникальным идентификаторам). Это гарантирует, что номенклатура «Товар 1» в рабочей базе будет соответствовать «Товару 1» в новой базе, даже если их наименования будут изменены. Выясним причину, по которой это важно: при несовпадении GUID в новой базе могут возникнуть дубли, что приведет к некорректной работе заказов и остатков в будущем.
Если задача «догона» не требует ежеминутного обновления, а выполняется периодически, можно воспользоваться типовой обработкой ВыгрузкаЗагрузкаДанныхXML.epf. Она работает в ручном режиме и позволяет переносить данные между одинаковыми конфигурациями с полным сохранением идентификаторов ссылок.
Посмотрим на особенности этого метода:
Чтобы новая база максимально быстро получила все актуальные данные, мы должны уметь управлять очередью выгрузки. В типовых решениях на управляемых формах для этого предусмотрена обработка «Регистрация изменений для данных обмена».
Рассмотрим, как с ней работать для нашей задачи:
Проанализируем ситуацию с большими объемами данных. Если справочник номенклатуры содержит сотни тысяч позиций, первая синхронизация может занять длительное время. В этом случае мы рекомендуем использовать Web-сервисы для передачи пакетов данных, так как это соединение более устойчиво к разрывам, чем прямое COM-подключение.
Важно помнить, что если вы переносите справочники без документов, у вас не будет остатков товаров и взаиморасчетов, так как они формируются документами. Однако некоторые важные данные хранятся в Регистрах сведений. Проверьте, чтобы в план обмена были включены:
ЦеныНоменклатуры (чтобы в новой базе были актуальные цены).ШтрихкодыНоменклатуры.Файлы (если к номенклатуре прикреплены изображения).Если эти регистры не перенести, справочники в новой базе будут «пустыми» в плане функциональности (без цен и картинок).
Таким образом, наиболее эффективным решением для задачи «догона» является настройка синхронизации через универсальный формат с отключенными документами и настроенным расписанием (например, каждые 10 минут). Это позволит новой базе всегда иметь актуальную справочную информацию, пока она готовится к запуску.