Для передачи изменений данных и конфигурации в распределенной информационной базе используются сообщения обмена данными, предоставляемые инфраструктурой сообщений. Если в случае применения универсальных механизмов обмена данными разработчик конфигурации сам определяет, что и как помещается в тело сообщения, то в случае распределенной информационной базы структура и состав данных, помещаемых в тело сообщения, четко определены.
Рассмотрим структуру сообщения обмена данными, используемого в распределенной информационной базе. В качестве примера рассмотрим следующее сообщение (листинг 3.18).
Листинг 3.18. Пример структуры сообщения обмена
<v8msg:Message>
<v8msg:Header>
<v8msg:ExchangePlan>УдаленныеСклады</v8msg:ExchangePlan>
<v8msg:To>Склад1</v8msg:To>
<v8msg:From>Офис</v8msg:From>
<v8msg:MessageNo>20</v8msg:MessageNo>
<v8msg:ReceivedNo>15</v8msg:ReceivedNo>
</v8msg:Header>
<v8msg:Body>
<v8de:Changes>
<v8de:Signature>7b4d5320 f69c 4a7b 9273 ff56607fc8ab</v8de:Signature>
<v8de:Config>
<!--Измененные объекты конфигурации -->
<v8de:Digest1>88d3f3a6ba3f4df03c7ec00f154837fc</v8de:Digest1>
<v8de:Digest2>00cf636b02a488103a64c7a2cf81069e</v8de:Digest2>
</v8de:Config>
<v8de:ConfigurationExtensions>
<ConfigurationExtensionDeletion>
<!--идентификатор удаляемого расширения -->
</ConfigurationExtensionDeletion>
<v8de:ConfigurationExtension>
<!--Данные расширения 1 -->
</v8de:ConfigurationExtension>
…
<v8de:ConfigurationExtension>
<!--Данные расширения N -->
</v8de:ConfigurationExtension>
</v8de:ConfigurationExtensions>
<v8de:Nodes>
<v8de:Node>
<!--Данные главного узла -->
</v8de:Node>
<v8de:Node>
<!--Данные подчиненного узла -->
</v8de:Node>
</v8de:Nodes>
<v8de:Data>
<!--Измененные элементы данных -->
</v8de:Data>
</v8de:Changes>
</v8msg:Body>
</v8msg:Message>
Как видно из примера, все особенности сообщения обмена данными, используемого в распределенной информационной базе, сосредоточены в теле сообщения. Тело сообщения (элемент Body, относящийся к пространству имен http://v8.1c.ru/messages) содержит один-единственный элемент XML – Changes, относящийся к пространству имен http://v8.1c.ru/dataexchange. Внутри этого элемента сосредоточены все данные, передаваемые при обмене данными в распределенной информационной базе.
Элемент Changes может содержать следующие вложенные элементы: