Планы обмена и РИБ 1С
Два механизма на одной основе
Обмен между информационными базами 1С:Предприятие строится на объекте метаданных План обмена, регистрации изменений и XML-сообщениях. Платформа предлагает два уровня:
| Универсальный обмен | РИБ (распределённая ИБ) | |
|---|---|---|
| Конфигурации узлов | Могут различаться | Только идентичные |
| Узлы | Любые ИБ и сторонние системы | Только базы 1С 8 |
| В сообщении | Обычно изменения данных | Данные и конфигурация |
| Топология | Произвольная, без «главного» | Дерево — один главный узел |
| Настройка | Код, коллизии, транспорт | Часто интерактивно, без кода |
Подробнее про произвольные схемы и интеграцию с не-1С — 137.md. Здесь — план обмена и РИБ.
План обмена
План обмена отвечает на три вопроса интеграции:
- С кем обмениваемся — узлы плана (элементы, как строки справочника).
- Чем — состав объектов конфигурации на закладке Состав плана обмена.
- Как — номера сообщений, транспорт (файл, FTP, HTTP), обработчики событий.
У каждой ИБ есть предопределённый узел ЭтотУзел — «мы сами». Остальные узлы — контрагенты обмена (филиал, склад, центральный офис).
Реквизиты узла хранят параметры участника: привязка к складу, каталог обмена, URL FTP и т.д.
Регистрация изменений
Служба регистрации изменений фиксирует, какие объекты изменились и для каких узлов их нужно отправить. При обмене передают не всю базу, а только зарегистрированные изменения.
Регистрация включается для типов из состава плана обмена. При записи объекта платформа может автоматически добавить строки в таблицы регистрации.
Программная регистрация:
Узел = ПланыОбмена.УдаленныеСклады.НайтиПоКоду("Оптовый");
Данные = Справочники.Номенклатура.НайтиПоКоду("00001");
ПланыОбмена.ЗарегистрироватьИзменения(Узел, Данные);
Можно зарегистрировать весь тип (Метаданные.Справочники.Номенклатура) или удаление (УдалениеОбъекта).
Очистка регистрации после успешной доставки — ПланыОбмена.УдалитьРегистрациюИзменений(). Две стратегии:
- Гарантированная доставка — очистка сразу после формирования сообщения.
- Ожидание квитанции — очистка по номеру последнего принятого сообщения из заголовка входящего пакета (
ReceivedNo).
Сообщение обмена
Сообщение — XML-документ с заголовком и телом. Заголовок (пространство имён http://v8.1c.ru/messages) содержит:
| Элемент | Смысл |
|---|---|
ExchangePlan | Имя плана обмена |
From / To | Коды узла-отправителя и получателя |
MessageNo | Порядковый номер исходящего сообщения |
ReceivedNo | Номер последнего сообщения, принятого от адресата (квитанция) |
Тело — XML-сериализация изменённых данных (ЗаписатьXML / ПрочитатьXML).
Выгрузка (упрощённо):
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(ИмяФайла);
ЗаписьXML.ЗаписатьОбъявлениеXML();
Узел = ПланыОбмена.Магазины.НайтиПоКоду("Филиал");
ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
ЗаписьСообщения.НачатьЗапись(ЗаписьXML, Узел);
ПланыОбмена.ЗаписатьИзменения(ЗаписьСообщения, 1000); // пакет по 1000 в транзакции
ЗаписьСообщения.ЗакончитьЗапись();
ЗаписьXML.Закрыть();
Загрузка:
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ИмяФайла);
ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
ПланыОбмена.ПрочитатьИзменения(ЧтениеСообщения, 1000);
ЧтениеСообщения.ЗакончитьЧтение();
ЧтениеXML.Закрыть();
При загрузке для каждого объекта задают:
Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель;
Данные.ОбменДанными.Загрузка = Истина;
Данные.Записать();
РИБ — распределённая информационная база
РИБ — частный случай плана обмена для одинаковых конфигураций в иерархии узлов:
- Корневой узел — единственное место изменения метаданных; обновление конфигурации стекает вниз по дереву.
- Данные можно менять в любом узле; изменения синхронизируются с соседями (главный ↔ подчинённые).
- Узел обменивается только с главным и подчинёнными, не «через всю сеть».
Типовые операции РИБ
| Действие | Как |
|---|---|
| Создать филиальную базу | Создать начальный образ узла (интерактивно или ПланыОбмена.СоздатьНачальныйОбраз()) |
| Выгрузить изменения | Записать изменения → файл (опционально ZIP) |
| Загрузить изменения | Прочитать изменения из файла |
Начальный образ создаёт новую пустую ИБ, переносит конфигурацию и отфильтрованные данные, настраивает ЭтотУзел и ссылку на главный узел.
Фильтрация и коллизии
В модуле плана обмена задают обработчики:
ПриОтправкеДанныхПодчиненному— отсечь лишнее (ОтправкаЭлемента = Удалить);ПриПолученииДанныхОтГлавного/ПриПолученииДанныхОтПодчиненного— игнорировать или переопределить приоритет при конфликте (ПолучениеЭлемента = Игнорировать).
Так реализуют обмен «только свой склад», разрешение коллизий (кто победил при одновременном изменении) и отложенную отправку изменений главному узлу.
РИБ или универсальный обмен
| Задача | Выбор |
|---|---|
| Филиалы с одной типовой конфигурацией | РИБ |
| УТ ↔ Бухгалтерия (разные конфигурации) | Универсальный + правила конвертации |
| Обмен с CRM/SAP | Универсальный или HTTP/OData |
| Обновление конфигурации по дереву | РИБ |
Связанные материалы
- Универсальный обмен
- Архитектура и мета-объекты
- Обработка ошибок — транзакции при загрузке
- Интеграция — хаб
Проверка себя
- Что хранит предопределённый узел
ЭтотУзел? - Зачем в заголовке сообщения поле
ReceivedNo? - Где в РИБ меняют конфигурацию — в филиале или в корне?
См. также
Другие статьи этого же раздела в боковом меню (как на странице "О разделе"). Платформа 1С - архитектура среды исполнения, назначение и место в автоматизации бизнес-процессов. История 1С - развитие платформы, ключевые этапы роста и влияние на цифровизацию бизнеса и госсектора. Экосистема 1С - продукты платформы, инструменты разработки, внедрение и сопровождение корпоративных решений. Архитектура платформы 1С, объекты метаданных, регистры, модули и исполнение прикладного кода. Пошаговое создание учебной конфигурации: справочники, документ, регистры, проведение, подсистемы и роли. Синтаксис и пунктуация 1С - базовые правила записи кода, операторы и структура выражений. Типизация, набор правил определения типа данных значений языка. Управление потоком выполнения в 1С - последовательность операций, ветвления и контроль выполнения сценариев. Функции и процедуры 1С - различия, правила использования и организация переиспользуемой бизнес-логики. Объекты и классы 1С - модель метаданных, экземпляры объектов и работа с прикладными сущностями. Данные — это конкретные записи, созданные пользователями или автоматически системой в рамках определённых объектов. Каждая запись имеет уникальный идентификатор и соответствует описанию в метаданных. Обработка ошибок в 1С - перехват исключений, диагностика сбоев и устойчивые сценарии обработки.Платформа 1С
История 1С
Экосистема 1С
Архитектура и мета-объекты 1С
Конфигурирование — мини-склад
Синтаксис и пунктуация 1С
Переменные и типы данных 1С
Управление потоком выполнения 1С
Функции и процедуры 1С
Объекты и классы 1С
Работа с базами данных 1С
Обработка ошибок 1С