Распределенные информационные базы
Механизмы обмена данными ‑ это набор средств системы «1С:Предприятие», предназначенный для организации обмена данными между идентичными и различными конфигурациями системы 1С:Предприятие, а также внешними программными системами.
Механизмы обмена данными могут быть условно разделены на два уровня:
- Распределенные информационные базы.
- Универсальные механизмы обмена данными.
Распределенные информационные базы – это механизм предназначенный для создания территориально распределенных систем на основе идентичных конфигураций системы 1С:Предприятие и организации обмена между ними. Обмен между узлами выполняется в формате XML, причем передаются не только данные, но и изменения в структуре конфигурации. Структура РИБ должна быть строго древовидной, то есть у каждой информационной базы должна быть главная база (у корневого узла она отсутствует) или подчиненные базы.
Для включения механизма распределенных информационных баз используется специальный объект конфигурации «План обмена».
Планы обмена – это общие объекты, предназначенные для регистрации изменений данных в выбранных узлах.
План обмена создается в ветке «Общие – Планы обмена». В свойстве «Состав» определяется список объектов конфигурации, изменения которых необходимо учитывать. Также можно выбрать непосредственно объект конфигурации и в окне редактирования объекта, на закладке «Обмен данными» или в окне «Дополнительно», на закладке «Планы обмена» и указать необходимые планы обмена.
В свойстве «Авторегистрация» указывается разрешение или запрет на регистрацию изменений в выбранном объекте. Если разрешена авторегистрация, то система сама отслеживает изменения, и формирует набор данных для обмена. Если запретить авторегистрацию изменений, разработчик должен программно, скорректировать, для каких узлов регистрировать нужные ему изменения и выполнить саму регистрацию изменений, как правило, подпиской на событие «ПередЗаписью» или «ПриЗаписи» используя метод ЗарегистрироватьИзменения() у конкретного плана обмена.
При создании плана обмена всегда автоматически создается предопределенный узел для текущей информационной базы, такой предопределенный узел существует только в единственном числе.
Для включения механизма распределенных баз данных в плане обмена используется свойство «Распределенная информационная база». После включения данного свойства становятся доступны интерактивные функции создания распределенных информационных баз и выполнения обмена между ними.
Содержимое сообщений, передаваемых между узлами распределенной информационной базы, не может быть произвольным, а является регламентированным протоколом обмена, принятым для распределенных информационных баз на основе системы 1С:Предприятие. Поэтому при использовании механизма распределенных баз данных изменения в конфигурации включаются в стандартные сообщения обмена. Таблица регистрации изменений для объектов, очищается после приема квитанции о приеме отправленного сообщения.
Для создания распределенной информационной базы используется кнопка «Создать новый образ». Можно создать файл информационной базы или сразу базу на сервере 1С:Предприятие. Если выбрали режим в виде файла, система сгенерирует файл информационной базы 1Cv8.1CD. Его сохраняем в отдельную папку, а папку подключаем как новую информационную базу.
Запускаем ИБ в режиме 1С:Предприятие, вносим изменения в данные.
Открываем план обмена, выбираем главный узел и нажимаем кнопку «Записать изменения…». Записываем изменения в файл с расширением *.zip.
В главной базе открываем план обмена, выбираем подчиненный узел и нажимаем кнопку «Прочитать изменения…», выбираем файл с расширением *.zip.
Универсальные механизмы обмена данными
Универсальные механизмы обмена данными могут использоваться для обмена данными между одинаковыми или различными конфигурациями системы 1С:Предприятие, а также между программными продуктами не на базе системы 1С:Предприятие (например, обмен с сайтами). Причем универсальный механизм обмена данными между различными системами может осуществляться в разных комбинациях.
Обмен между идентичными распределенными конфигурациями можно организовать не только средствами распределенных информационных баз, но и средствами универсального механизма обмена данными.
Порядок обмена сообщениями между узлами информационных баз не регламентирован платформой и полностью настраивается разработчиком, соответственно порядок очистки таблицы регистрации изменений также определяется разработчиком, который может очистить ее после отправки или после приема сообщения.
При реализации универсального обмена данными с использованием плана обмена, разработчик должен самостоятельно решать вопрос разрешения коллизий, поскольку платформа не обладает информацией о методах формирования сообщений и механизмах их доставки.
XML-сериализация
XML-сериализация – это процесс преобразования данных 1С:Предприятие в данные формата XML.
XML-десериализация – это обратный процесс преобразования данных.
XML- сериализация используется для реализации механизмов обмена между прикладными продуктами системами 1С:Предприятие и прикладными продуктами на базе других систем.
Сериализация типов данных
Все типы 1С:Предприятия при сериализации делятся на простые и сложные типы.
К простым типам относятся типы, значения которых можно представить в виде элементов XML только с текстовым содержимым:
- Число.
- Строка.
- Дата.
- Булево.
- ДвоичныеДанные.
- УникальныйИдентификатор.
- ХранилищеЗначения.
- Все ссылки на объекты базы данных и перечисления.
К сложным типам относятся типы, значения которых можно представить в виде элементов XML, содержащих вложенные элементы:
- Тип.
- ОписаниеТипов.
- СправочникМенеджер.<Имя справочника>.
- Все объекты базы данных.
- Наборы записей.
Для записи значений в XML-документ используются методы XML-сериализации и объект «ЗаписьXML», для чтения из XML-документа используется объект «ЧтениеXML».
Для преобразования XML документа в другой документ допустимого формата используется объект «ПреобразованиеXSL». Технология преобразования основана на стандарте XSLT Version 1.0.
Упрощенный программный код формирования текста сообщения.
Содержимое текста сообщения
Все сообщение находится внутри элемента XML с именем Message, относящимся к пространству имен http://v8.1c.ru/messages. Сообщение состоит из:
- Header – заголовок, содержит системные параметры.
- Body – тело сообщения, содержит данные измененных элементов.
Структура заголовка жестко регламентирована.
- ExchangePlan – имя плана обмена.
- From – код узла-отправителя.
- To – код узла-получателя.
- MessageNo – номер сообщения, который присваивается узлом-отправителем. Этот номер для каждого последующего сообщения увеличивается на 1.
- ReceivedNo – максимальный номер принятого сообщения. Предназначен для подтверждения приема сообщения.
Структура тела Body никак не регламентируется, поэтому может иметь произвольное содержимое, необходимое для узла-получателя.
Упрощенный программный код чтения текста сообщения.
Ваганов Сергей, эксперт в области разработки прикладных решений на платформе 1С:Предприятие, преподаватель-методист CORS Academy и автор курса «Разработчик 1С с нуля до профессионала».




























































