Механизмы обмена данными в 1С

Механизмы обмена данными в 1С

Распределенные информационные базы

Механизмы обмена данными ‑ это набор средств системы «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С с нуля до профессионала».

Механизмы обмена данными в 1С
Подписаться
Уведомить о
guest

wp-puzzle.com logo

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

подпишитесь на рассылку академии

2 письма в неделю со свежими новостями о скидках, курсах и других событиях

Нажимая на кнопку “Подписаться”, вы даете согласие на обработку персональных данных