Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

// Удаляем регистрацию изменений для узла отправителя сообщения.




// Удаляем регистрацию изменений для узла отправителя сообщения.

// *** Служба регистрации изменений. ПланыОбмена. УдалитьРегистрациюИзменений(ЧтениеСообщения. Отправитель,

ЧтениеСообщения. НомерПринятого);

ЧтениеСообщения. ЗакончитьЧтение(); ЧтениеXML. Закрыть(); УдалитьФайлы(ИмяФайла);

Сообщение = Новый СообщениеПользователю; Сообщение. Текст = " -------- Конец загрузки------------------------------------------------------- ";

Сообщение. Сообщить();

КонецПроцедуры


 

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

Теперь, наконец, мы можем приступить к чтению непосредственно самих данных, содержащихся в сообщении (листинг 24. 21).

листинг 24. 21. Чтение данных из сообщения

Процедура ПрочитатьСообщениеСИзменениями() Экспорт Каталог = КаталогВременныхФайлов();

// Сформировать имя файла.

ИмяФайла = Каталог +? (Прав(Каталог, 1) = " \", " ", " \" ) + " Message" + СокрЛП(Ссылка. Код) + " _" +

СокрЛП(ПланыОбмена. Филиалы. ЭтотУзел(). Код) + ". xml"; Файл = Новый Файл(ИмяФайла);

Если Не Файл. Существует() Тогда Возврат;

КонецЕсли;

// *** Чтение документов XML

// Попытаться открыть файл. ЧтениеXML = Новый ЧтениеXML; Попытка

ЧтениеXML. ОткрытьФайл(ИмяФайла);

Исключение

Сообщение = Новый СообщениеПользователю;

Сообщение. Текст = " Невозможно открыть файл обмена данными. "; Сообщение. Сообщить();

Возврат; КонецПопытки;

Сообщение = Новый СообщениеПользователю;

Сообщение. Текст = " -------- Загрузка из " + Строка(ЭтотОбъект) + " --------- ";

Сообщение. Сообщить();

Сообщение = Новый СообщениеПользователю; Сообщение. Текст = " – Считывается файл " + ИмяФайла; Сообщение. Сообщить();

// Загрузить из найденного файла

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

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

// Читать заголовок сообщения обмена данными – файла XML. ЧтениеСообщения. НачатьЧтение(ЧтениеXML);

// Сообщение предназначено не для этого узла.

Если ЧтениеСообщения. Отправитель < > Ссылка Тогда ВызватьИсключение " Неверный узел";

КонецЕсли;


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

И первое, что нам нужно сделать, – представить данные XML в виде некоторого значения, имеющего тип «1С: Предприятия». Для этого мы используем метод глобального контекста ПрочитатьXML(), листинг 24. 22.

листинг 24. 22. Представление данных XML в виде значения, имеющего тип

 


Занятие 24



ЧтениеXML. ОткрытьФайл(ИмяФайла);

Исключение

Сообщение = Новый СообщениеПользователю;

Сообщение. Текст = " Невозможно открыть файл обмена данными. "; Сообщение. Сообщить();

Возврат; КонецПопытки;

Сообщение = Новый СообщениеПользователю;

Сообщение. Текст = " -------- Загрузка из " + Строка(ЭтотОбъект) + " --------- ";

Сообщение. Сообщить();

Сообщение = Новый СообщениеПользователю; Сообщение. Текст = " – Считывается файл " + ИмяФайла; Сообщение. Сообщить();

// Загрузить из найденного файла

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

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

// Читать заголовок сообщения обмена данными – файла XML. ЧтениеСообщения. НачатьЧтение(ЧтениеXML);

// Сообщение предназначено не для этого узла.

Если ЧтениеСообщения. Отправитель < > Ссылка Тогда ВызватьИсключение " Неверный узел";

КонецЕсли;

// Удаляем регистрацию изменений для узла отправителя сообщения.

// *** Служба регистрации изменений. ПланыОбмена. УдалитьРегистрациюИзменений(ЧтениеСообщения. Отправитель,

ЧтениеСообщения. НомерПринятого);

// Читаем данные из сообщения *** XML-сериализация. Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...