Книга: Технологии интеграции "1С:Предприятия 8.3""
Назад: Создание начального образа
Дальше: Подготовка конфигурации к работе в распределенной информационной базе

Запись и чтение сообщений обмена

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

Рис. 3.10. Интерактивная запись и чтение изменений

При выборе команды (например, записи изменений) открывается диалог, в котором указывается количество элементов данных, обрабатываемых в одной транзакции, и устанавливается флажок Сжимать сообщение (XML-документ будет упакован в архив ZIP) – рис. 3.11.

Рис. 3.11. Диалог записи сообщения обмена

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

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

Аналогичное действие можно реализовать и самостоятельно, используя для записи следующий фрагмент кода (листинг 3.20).

Листинг 3.20. Пример записи сообщения обмена

ЗаписьXML.ОткрытьФайл("c:\temp\out.xml");

ЗаписьXML.ЗаписатьОбъявлениеXML();

 

// Создать новое сообщение.

Узел = ПланыОбмена.Магазины.НайтиПоКоду("Магазин");

ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();

ЗаписьСообщения.НачатьЗапись(ЗаписьXML, Узел);

 

// Записать изменения.

ПланыОбмена.ЗаписатьИзменения(ЗаписьСообщения, 1000);

 

ЗаписьСообщения.ЗакончитьЗапись();

ЗаписьXML.Закрыть();

Пример чтения сообщения обмена приведен в листинге 3.21.

Листинг 3.21. Пример чтения сообщения обмена

// Создать объект чтения XML.

ЧтениеXML = Новый ЧтениеXML;

ЧтениеXML.ОткрытьФайл("c:\temp\out.xml");

 

// Загрузить сообщение из файла.

ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();

ЧтениеСообщения.НачатьЧтение(ЧтениеXML);

 

// Прочитать изменения.

ПланыОбмена.ПрочитатьИзменения(ЧтениеСообщения,1000);

 

ЧтениеСообщения.ЗакончитьЧтение();

ЧтениеXML.Закрыть();

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

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

Назад: Создание начального образа
Дальше: Подготовка конфигурации к работе в распределенной информационной базе