Администрирование · 13 мин
Узел РИБ в 1С: что это и как работает распределённая база
Узел РИБ в 1С — что это такое, как устроена распределённая информационная база, настройка обмена, типичные ошибки и способы проверки синхронизации данных.
РИБ — это распределённая информационная база, механизм платформы 1С:Предприятие, который позволяет нескольким базам обмениваться данными и работать как единая система. Узел РИБ — это отдельная информационная база, входящая в состав такой распределённой системы. Каждый узел хранит собственную копию данных и периодически синхронизируется с другими узлами.
Типичный пример: центральный офис и несколько филиалов или магазинов. В центральной базе заводят номенклатуру, цены и контрагентов, а филиалы получают эти данные через обмен и отправляют обратно свои продажи, кассовые документы и складские движения. При этом каждый узел может работать автономно — даже если связь с центром временно отсутствует.
Технически РИБ реализована на механизме планов обмена. План обмена описывает состав данных, которыми узлы обмениваются, а также фиксирует изменения (регистрацию изменений), которые нужно передать в другие узлы. Именно поэтому понятия «узел РИБ» и «узел плана обмена» в контексте распределённых баз фактически совпадают.
Что такое узел РИБ простыми словами
Представьте распределённую базу как сеть из нескольких баз 1С, связанных между собой. Каждая точка этой сети — узел. В классической схеме РИБ есть один главный узел (центральная база) и один или несколько подчинённых узлов (периферийные базы). Главный узел управляет структурой: только в нём можно изменять конфигурацию, добавлять новые узлы и контролировать состав обмена.
Подчинённый узел создаётся из образа центральной базы — специального файла начального образа, который выгружается из главного узла. После развёртывания образа периферийная база становится полноценным узлом: в ней можно вводить документы, заводить элементы справочников и работать без постоянного подключения к центру.
Важное свойство РИБ: обмен идёт не всей базой целиком, а только зарегистрированными изменениями. Платформа отслеживает, какие объекты были созданы, изменены или удалены с момента последнего обмена, и передаёт только эти порции данных. Это снижает трафик и ускоряет синхронизацию.
Как устроена распределённая информационная база
Основа РИБ — план обмена. В типовых конфигурациях для распределённых баз используются специальные планы обмена (например, «Полный» или «По организации» в зависимости от решения). План обмена содержит список узлов и определяет состав метаданных: какие справочники, документы и регистры участвуют в обмене.
Для каждого объекта, включённого в состав плана обмена, платформа ведёт регистрацию изменений. Когда пользователь записывает документ в центральной базе, это изменение фиксируется для всех подчинённых узлов. При очередном сеансе обмена изменения выгружаются в файл сообщения обмена (обычно XML) и передаются в периферийную базу.
Каждое сообщение обмена имеет номер. Узел-отправитель знает, какой номер сообщения принял узел-получатель, и при следующей выгрузке отправляет только накопившиеся с того момента изменения. Если подтверждение приёма не пришло, сообщение будет сформировано повторно — это защищает от потери данных при сбоях связи.
Структура РИБ в классическом варианте иерархическая: подчинённый узел всегда связан с конкретным главным узлом, и «пересадить» его к другой центральной базе штатными средствами нельзя. Это принципиальное ограничение механизма.
Главный и подчинённый узлы: в чём разница
| Параметр | Главный узел | Подчинённый узел |
|---|---|---|
| Изменение конфигурации | Разрешено, изменения рассылаются в узлы | Запрещено, только приём обновлений от главного |
| Создание новых узлов | Да, создание образа периферийной базы | Нет |
| Работа с данными | Полный объём данных системы | Обычно данные своего подразделения |
| Обмен | Отправляет и принимает сообщения | Отправляет и принимает сообщения |
| Автономная работа | Да | Да |
Ключевое отличие — управление конфигурацией. Если обновить конфигурацию в главном узле, изменения структуры метаданных попадут в файл обмена и будут применены в подчинённых узлах при приёме сообщения. Попытка обновить конфигурацию напрямую в периферийной базе через конфигуратор заблокирована платформой.
При этом данные в обоих типах узлов вводятся свободно. Ограничения на ввод данных, если они нужны, реализуются настройками прав и функциональных опций, а не самим механизмом РИБ.
Как создать подчинённый узел РИБ
Создание нового узла всегда начинается в главной базе. Общий порядок действий одинаков для большинства типовых конфигураций, отличаются только названия команд интерфейса.
- 1В главной базе откройте список узлов плана обмена (раздел «Администрирование» — «Синхронизация данных» либо «Операции» — «Планы обмена»).
- 2Создайте новый узел, задайте код и наименование. Код должен быть уникальным в пределах распределённой системы.
- 3Выполните команду создания начального образа подчинённого узла и укажите каталог или файл для выгрузки.
- 4Разверните образ на компьютере филиала: создайте новую информационную базу из полученного файла.
- 5В подчинённой базе проверьте, что узел корректно определил себя как подчинённый, и выполните первый обмен с главным узлом.
- 6Убедитесь, что справочники и остатки из центра пришли в периферийную базу.
Начальный образ может быть объёмным, если база большая: в него входит вся конфигурация и все данные, входящие в состав плана обмена. Для крупных баз создание образа занимает заметное время и требует свободного места на диске. На период создания образа желательно минимизировать активную работу пользователей в главной базе.
После развёртывания образа периферийная база уже «знает» своего главного узла. Дальнейшие обмены можно выполнять вручную через файл, через каталог обмена, FTP, электронную почту или настроить автоматическую синхронизацию по расписанию — в зависимости от возможностей конфигурации.
Как проходит обмен между узлами
Сеанс обмена состоит из двух этапов: выгрузка сообщения в своём узле и загрузка сообщения, полученного от другого узла. В типовых решениях эти операции часто объединены в одну кнопку «Выполнить обмен», но логически они независимы.
При выгрузке платформа формирует файл сообщения обмена со всеми изменениями, зарегистрированными для данного узла и ещё не подтверждёнными им. При загрузке — читает входящий файл, применяет изменения к базе и отправляет подтверждение при следующей выгрузке. Пока подтверждение не получено, изменения продолжают числиться зарегистрированными и будут выгружаться повторно.
Если данные изменились одновременно в двух узлах, возникает коллизия. В РИБ действует правило: приоритет у главного узла. Если один и тот же объект изменён в центре и в филиале, при обмене побеждает версия главного узла, а изменение подчинённого будет перезаписано. Это нужно учитывать при организации работы: критичные справочники лучше редактировать только в центре.
Типичные проблемы и их признаки
Самая частая ситуация — обмен вроде бы выполняется, но данные в другом узле не появляются. Причины обычно такие: изменения не зарегистрированы для узла (объект не входит в состав плана обмена), файл сообщения не дошёл до получателя, либо загрузка завершилась с ошибкой и данные отклонены.
Вторая группа проблем — рассинхронизация номеров сообщений после восстановления базы из копии. Узел отказывается принимать сообщение с «неправильным» номером. В этом случае в типовых конфигурациях предусмотрена возможность вручную изменить номера отправленных и принятых сообщений в настройках узла, после чего обмен возобновляется.
Третья группа — ошибки при загрузке объектов: например, документ ссылается на элемент справочника, который ещё не пришёл в этот узел. Часть таких ситуаций разрешается повторными обменами, часть требует анализа состава плана обмена и порядка ввода данных.
Как проверить, что обмен работает корректно
После настройки РИБ и каждого проблемного обмена полезно пройти по контрольным точкам. Это занимает несколько минут и позволяет убедиться, что синхронизация действительно идёт, а не просто завершается без видимых ошибок.
Как проверить результат
Номер принятого сообщения растёт после каждого обмена, расхождений между узлами нет
Номера «замерли» или сброшены, узел ругается на неверный номер сообщения
Созданный в одном узле элемент справочника появляется в другом после обмена
Объект не пришёл или пришёл с ошибкой загрузки
Обмен завершён, ошибок загрузки нет
Есть записи об отказе в загрузке объектов или разрыве соединения
После успешного обмена очередь зарегистрированных изменений очищается
Изменения копятся и выгружаются повторно каждый раз
Практический приём: заведите тестовый элемент в малоиспользуемом справочнике (например, тестового контрагента) в главном узле, выполните обмен и проверьте его появление в подчинённом. Затем измените его в подчинённом узле и убедитесь, что изменение вернулось в центр. Это подтверждает работу канала в обе стороны.
Настройте регулярность обменов под реальный ритм работы: для магазинов обычно удобен обмен в конце смены и утром до открытия. Чем длиннее пауза между обменами, тем больше накапливается изменений и тем дольше длится каждый сеанс синхронизации.
Когда РИБ подходит, а когда лучше выбрать другой механизм
РИБ оправдана, когда нужны автономные базы с одинаковой конфигурацией: филиалы без стабильной связи, магазины, удалённые склады. Главные преимущества — штатность механизма, автономность узлов и автоматическая доставка обновлений конфигурации.
Если базы имеют разные конфигурации (например, «Управление торговлей» и «Бухгалтерия»), РИБ не подходит в принципе — нужны обмены через правила конвертации или универсальные механизмы синхронизации данных. Также РИБ избыточна, если все пользователи могут работать в одной базе через веб-клиент или терминальный доступ: проще поддерживать единую базу, чем сеть узлов.
Сравнение вариантов
Автономные узлы с одинаковой конфигурацией, слабая связь с филиалами. Ограничение: жёсткая иерархия, конфигурация обновляется только из центра.
Обмен между разными конфигурациями по правилам. Ограничение: не переносит обновления конфигурации и требует настройки правил.
Все работают в одной базе через веб или терминал. Ограничение: нужен стабильный канал связи, автономности нет.
Что важно запомнить
Узел РИБ — это база-участник распределённой системы обмена. Главный узел управляет конфигурацией и создаёт подчинённые, обмен идёт зарегистрированными изменениями с подтверждением приёма. Коллизии решаются в пользу главного узла, а восстановление из копий требует контроля номеров сообщений.
Частые вопросы об узлах РИБ
Можно ли изменить конфигурацию в подчинённом узле РИБ?
Нет. Платформа блокирует обновление конфигурации в подчинённой базе. Все изменения структуры метаданных вносятся в главном узле и доставляются в периферийные базы вместе с сообщениями обмена. Для корректного обновления сначала обновите главный узел, затем выполните обмен со всеми подчинёнными.
Что делать, если узел отказывается принимать сообщение обмена?
Чаще всего причина в рассинхронизации номеров сообщений после восстановления из копии. Откройте настройки узла в обеих базах и сверьте номера отправленных и принятых сообщений. В типовых конфигурациях номера можно скорректировать вручную, после чего обмен возобновляется. Если это не помогает, узел проще пересоздать из нового начального образа.
Как отключить подчинённый узел от распределённой базы?
В типовых конфигурациях есть штатная команда отключения узла, которая снимает привязку периферийной базы к главному узлу. После отключения база становится обычной самостоятельной информационной базой, но вернуть её обратно в ту же РИБ уже нельзя — только создать новый узел из образа. Перед отключением выполните финальный обмен, чтобы данные не потерялись.
Почему изменения из филиала пропали после обмена?
Вероятнее всего, произошла коллизия: тот же объект изменили и в главном узле. В РИБ при конфликте приоритет всегда у главного узла, поэтому версия филиала была перезаписана. Чтобы избежать этого, разграничьте зоны ответственности: справочники и ключевые настройки редактируйте в центре, а филиалам оставьте ввод первичных документов.
Сколько подчинённых узлов может быть в РИБ?
Жёсткого ограничения платформа не накладывает, но на практике с ростом числа узлов увеличивается нагрузка на главный узел: он формирует отдельное сообщение для каждого подчинённого. При большом количестве узлов важны регулярность обменов, регламентное обслуживание баз и контроль объёма регистрируемых изменений.
Чем РИБ отличается от обычной синхронизации данных?
РИБ — механизм платформы с жёсткой иерархией «главный-подчинённый», одинаковой конфигурацией во всех узлах и автоматической доставкой обновлений конфигурации. Универсальная синхронизация данных работает между разными конфигурациями по настраиваемым правилам, узлы в ней равноправны, но обновления конфигурации она не переносит.