Объект 1С "Планы обмена". Распределенная информационная база (РИБ)

Объект 1С "Планы обмена" используется для реализации механизмов обмена данными (реализации синхронизации данных в системе), для чего:

  • содержит информацию об узлах, которые могут участвовать в обмене данными;
  • определяет состав данных, которыми будет производиться обмен;
  • указывает, следует ли задействовать механизм распределенной информационной базы (РИБ) при обмене.
Рисунок

1с план обмена создание

[свернуть]

В одном прикладном решении может существовать несколько планов обмена, каждый из которых может описывать свой порядок обмена данными. Например, если выполняется обмен данными с удаленными складами и удаленными офисами, то, скорее всего, будет существовать два плана обмена (один для обмена со складами, другой - для офисов), поскольку состав данных, которыми производится обмен со складами, будет значительно "уже", чем состав данных, предназначенных для обмена с офисами.

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

  • информационные базы 1С:Предприятия 8,
  • информационные базы 1С:Предприятия 7.7 или
  • другие информационные системы, не основанные на 1С:Предприятии.

Для каждого узла можно задать код, наименование и необходимый перечень реквизитов, описывающих узел. Узел может иметь также несколько подчиненных табличных частей для хранения информации, связанной с этим узлом, несколько форм, для отображения информации, содержащейся в плане обмена, и т.д.

Особенности плана обмена 1С:

  1. При использовании планов обмена управлять составом узлов, для которых производится регистрация изменений объектов, можно при работе с объектом.
  2. У плана обмена может быть только один предопределенный узел (который нельзя удалить или пометить на удаление).
    Рисунок

    Планы обмена 1С. Удаление элемента

    [свернуть]
  3. Для прикладных объектов в окне редактирования объекта конфигурации на закладке "Обмен данными" указываются планы обмена, в которых будут учитываться изменения в данном объекте.
    Рисунок

    Авторегистрация обмена 1С

    [свернуть]

Влияние реализации плана обмена на производительность 1С

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

Состав плана обмена

Состав плана обмена - это настройка, с помощью которой разработчик управляет набором объектов для обмена.

Рисунок

Состав плана обмена

[свернуть]

В составе плана обмена может быть 3 состояния объекта:

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

    Авторегистрация изменений объекта в Плане обмена 1С

    [свернуть]

Механизмы, реализуемые планом обмена:

  1. Механизм распределенных информационных баз - позволяет создавать в рамках конкретного плана обмена распределенную информационную базу, между узлами которой организован обмен данными с целью синхронизации конфигурации и данных. Подробнее...
  2. Служба регистрации изменений, позволяющая иметь перечень измененных элементов данных которые должны быть переданы в очередном сообщении тому или иному узлу, с которым производится обмен данными. Подробнее...
  3. Инфраструктура сообщений - одна из составляющих механизмов обмена данными, которая обеспечивает автоматическое формирование сообщений, передаваемых в другие узлы распределенной системы. Подробнее...

Распределенная информационная база (РИБ)

Распределенная информационная база (РИБ) — территориально распределенная система информационных баз на основе одинаковой конфигурации 1С; это иерархическая древовидная структура, состоящая из отдельных информационных баз 1С:Предприятия – узлов распределенной информационной базы, между которыми организован обмен данными с целью синхронизации конфигурации и данных.

Схема РИБ

Отсюда

Распределенная информационная база (РИБ)

[свернуть]

РИБ позволяет переносить:

  1. изменения данных;
  2. изменения конфигурации информационной базы.

Для того чтобы распределенная система, описанная конкретным планом обмена, функционировала как распределенная информационная база, достаточно отметить соответствующее свойство плана обмена (флаг "Распределенная база данных").

Рисунок

план обмена 1с с нуля

[свернуть]

В этом случае становятся доступны:

  1. интерактивные функции обмена, которые могут быть полностью продублированы средствами встроенного языка;
  2. ряд методов и событий Плана обмена, позволяющих управлять структурой распределенной информационной базы и обработкой конкретных сообщений обмена.

Например, при отмеченном у плана обмена флаге "Распределенная база данных" при получении данных от подчиненного узла возникает событие "ПриПолученииДанныхОтПодчиненного", определяемое в модуле плана обмена.

Возможности распределенной информационной базы:

  • интерактивное создание распределенной системы и выполнение обмена данными без дополнительного программирования;
  • обеспечение идентичности конфигураций информационных баз, входящих в состав РИБ;
  • подключение новых и отключение существующих узлов;
  • создание начального образа информационной базы для нового узла;
  • реализация различных способов разрешения коллизий при одновременном изменении данных в разных узлах распределенной системы;
  • возможность создания нескольких  схем обмена в рамках одной РИБ;
  • возможность создания схем обмена с другими информационными системами, в том числе с информационными базами 1С:Предприятия, не являющимися РИБ;
  • задание условий на передачу и прием изменений на уровне отдельных элементов данных;
  • реализация восстановления обмена данными в таких случаях, как восстановление информационных баз из резервных копии и т.д.;
  • сжатие сообщений обмена в формате .ZIP и автоматическая распаковка сообщений обмена при приеме.

Особенности распределенной информационной базы:

  1. должна иметь древовидную структуру, в которой существует корневой узел и определено отношение "главный - подчиненный" для каждой пары связанных узлов;
  2. Каждая база в схеме знает только свои соседние узлы - родительский и подчиненные, причем для корневого узла родительской базы нет, а для баз самого нижнего уровня нет подчиненных;
  3. обмен данными выполняется в формате ХML документов;
  4. изменения конфигурации распространяются в стандартных сообщениях обмена вместе с изменениями данных;
  5. внесение изменений возможно:
    • в конфигурацию -  только в одном (корневом) узле распределенной системы;
    • в данные -  в любом узле системы;
  6. изменения конфигурации передаются от главного узла к подчиненным;
  7. изменения данных передаются между любыми связанными узлами.

При использовании механизма распределенных информационных баз в соответствующем объекте "План обмена" для отдельно взятой информационной базы (входящей в распределенную) определяется:

  1. главная база (может и отсутствовать);
  2. подчиненные базы.

При использовании механизма распределенных баз данных таблица регистрации изменений для объектов, изменение которых отправлено в сформированном сообщении, очищается после приема квитанции о приеме отправленного сообщения (система проверяет, что данные получены).

Отключение узла от РИБ

Подчинённый узел РИБ не даёт изменять конфигурацию вручную («Изменения конфигурации заблокированы средствами управления распределенной ИБ»).

Порядок отключения узла от РИБ:

  1. через консоль администрирования убедиться, что у целевой БД отсутствуют активные соединения;
  2. для целевой базы запустить 1С в режиме конфигуратора с командой с параметром /ResetMasterNode.
Пример для серверной БД (запускать из-под пользователя, имеющего полные права в БД)

  • для (x86) команда:
C:\Program Files (x86)\1cv81\bin\1cv8.exe DESIGNER /S SRVname\BDname /ResetMasterNode
  • для (x64) команда:
C:\Program Files (x86)\1cv81\bin\1cv8.exe DESIGNER /S SRVname\BDname /ResetMasterNode

Если нужно указывать логин-пароль, то можно добавить параметры: /NameAdmin /PasswordAdmin

[свернуть]

Служба регистрации изменений

Служба регистрации изменений - одна из составляющих механизмов обмена данными, которая обеспечивает регистрацию всех измененных данных, подлежащих передаче в другие узлы распределенной системы. Реализована в составе объекта конфигурации План обмена.

Подробнее

http://v8.1c.ru/overview/Term_000000316.htm

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

Состав данных, которыми осуществляется обмен, описывается в плане обмена и представляет собой перечень элементов данных (например, СправочникОбъект.<имя>РегистрСведенийНаборЗаписей.<имя>КонстантаМенеджерЗначения.<имя> и т.д.).

Для каждого элемента данных, указанного в плане обмена, ведется своя таблица регистрации изменений. Таблицы имеют разную структуру, в зависимости от того, для каких элементов данных регистрируются изменения, но все-таки структуры таблиц подобны. Каждая запись указывает на некоторый элемент данных, некоторый узел и содержит номер сообщения, в котором это изменение передано в первый раз.

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

Непосредственно после выполнения регистрации изменения, в каждой новой записи изменений номер сообщения имеет значение NULL. При первой отправке изменения в составе сообщения, он заменяется номером сообщения, в котором изменение отправлено.

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

[свернуть]

Инфраструктура сообщений

Инфраструктура сообщений - одна из составляющих механизмов обмена данными, которая обеспечивает автоматическое формирование сообщений, передаваемых в другие узлы распределенной системы.

Подробнее

http://v8.1c.ru/overview/Term_000000317.htm

С точки зрения плана обмена, между узлами происходит обмен сообщениями. Каждое сообщение содержит изменения данных, изменения конфигурации (если это распределенная информационная база) и ряд служебной информации.

Каждое сообщение точно ассоциировано с планом обмена, имеет уникальный номер и имеет одного отправителя и одного получателя.

Сообщение оформляется как документ XML, имеющий определенную структуру. Инфраструктура сообщений позволяет формировать нужную структуру сообщения, и контролировать ее корректность. В частности, инфраструктура сообщений поддерживает нумерацию сообщений, и позволяет получать подтверждения от узла-получателя о приеме сообщений. Такое подтверждение содержится в каждом сообщении, приходящем от узла-получателя в виде номера последнего принятого сообщения.

[свернуть]

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.