// Получить выборку измененных данных
// Получить выборку измененных данных // *** Механизм регистрации изменений. Теперь осталось только перебрать выборку записей в цикле и сериа- лизовать их в открытый XML-файл (листинг 24. 15). листинг 24. 15. Перебор выборки записей и сериализация их в открытый XML-файл Процедура ЗаписатьСообщениеСИзменениями() Экспорт Сообщение = Новый СообщениеПользователю; Сообщение. Текст = " -------- Выгрузка в узел " + Строка(ЭтотОбъект) + " --------- »; Сообщение. Сообщить(); Каталог = КаталогВременныхФайлов(); // Сформировать имя временного файла. ИмяФайла = Каталог +? (Прав(Каталог, 1) = " \", " ", " \" ) + " Message" + СокрЛП(ПланыОбмена. Филиалы. ЭтотУзел(). Код) + " _" + СокрЛП(Ссылка. Код) + ". xml"; // Создать объект записи XML // *** ЗаписьXML-документов. ЗаписьXML = Новый ЗаписьXML; ЗаписьXML. ОткрытьФайл(ИмяФайла); ЗаписьXML. ЗаписатьОбъявлениеXML(); // *** Инфраструктура сообщений. ЗаписьСообщения = ПланыОбмена. СоздатьЗаписьСообщения(); ЗаписьСообщения. НачатьЗапись(ЗаписьXML, Ссылка); Сообщение = Новый СообщениеПользователю; Сообщение. Текст = " Номер сообщения: " + ЗаписьСообщения. НомерСообщения; Сообщение. Сообщить(); // Получить выборку измененных данных // *** Механизм регистрации изменений. ВыборкаИзменений = ПланыОбмена. ВыбратьИзменения(ЗаписьСообщения. Получатель, ЗаписьСообщения. НомерСообщения); Пока ВыборкаИзменений. Следующий() Цикл // Записать данные в сообщение *** XML-сериализация. ЗаписатьXML(ЗаписьXML, ВыборкаИзменений. Получить()); КонецЦикла; На этом создание процедуры записи данных обмена закончено.
Процедура чтения данных Порядок создания процедуры чтения данных обмена будет таким же, как и ранее: сначала мы сформируем имя файла, содержащего данные обмена (листинг 24. 16).
листинг 24. 16. Формирование имени файла, содержащего данные обмена Мы формируем имя файла, которое надеемся найти в этом каталоге, а затем, создав новый объект Файл с таким именем, проверяем, суще- ствует ли он. Если такого файла нет, мы завершаем работу процедуры. Если же такой файл найден, нужно будет удалить его после того, как все данные, содержащиеся в нем, будут обработаны. Теперь добавим в процедуру команды чтения найденного файла с данными обмена (листинг 24. 17).
листинг 24. 17. Добавление чтения найденного файла с данными обмена Процедура ПрочитатьСообщениеСИзменениями() Экспорт Каталог = КаталогВременныхФайлов(); // Сформировать имя файла. ИмяФайла = Каталог +? (Прав(Каталог, 1) = " \", " ", " \" ) + " Message" + СокрЛП(Ссылка. Код) + " _" + СокрЛП(ПланыОбмена. Филиалы. ЭтотУзел(). Код) + ". xml"; Файл = Новый Файл(ИмяФайла); Если Не Файл. Существует() Тогда Возврат; КонецЕсли; // *** Чтение документов XML // Попытаться открыть файл. ЧтениеXML = Новый ЧтениеXML; Попытка ЧтениеXML. ОткрытьФайл(ИмяФайла); Исключение Сообщение = Новый СообщениеПользователю; Сообщение. Текст = " Невозможно открыть файл обмена данными. "; Сообщение. Сообщить(); Возврат; КонецПопытки; Сообщение = Новый СообщениеПользователю; Сообщение. Текст = " -------- Загрузка из " + Строка(ЭтотОбъект) + " ----------------------- "; Сообщение. Сообщить(); Сообщение = Новый СообщениеПользователю; Сообщение. Текст = " – Считывается файл " + ИмяФайла; Сообщение. Сообщить(); ЧтениеXML. Закрыть(); УдалитьФайлы(ИмяФайла); Сообщение = Новый СообщениеПользователю; Сообщение. Текст = " -------- Конец загрузки------------------------------------------------------- ";
Сообщение. Сообщить(); КонецПроцедуры Именно в этот момент мы обращаемся к механизмам записи/чтения документов XML, которые работают с ними на базовом уровне. Для этого мы создаем новый объект ЧтениеXML, с помощью которого открываем найденный файл для чтения. В случае успеха мы выводим сообщение о начале загрузки данных из файла. В конце процедуры мы также прекращаем чтение XML-данных из файла методом Закрыть(). Занятие 24
Полученные таким образом данные должны являться некоторым сообщением обмена данными. Для того чтобы представить их в терминах сообщений, мы добавим в процедуру следующий код (листинг 24. 18). листинг 24. 18. Добавление чтения заголовка XML-сообщения Процедура ПрочитатьСообщениеСИзменениями() Экспорт Каталог = КаталогВременныхФайлов(); // Сформировать имя файла. ИмяФайла = Каталог +? (Прав(Каталог, 1) = " \", " ", " \" ) + " Message" + СокрЛП(Ссылка. Код) + " _" + СокрЛП(ПланыОбмена. Филиалы. ЭтотУзел(). Код) + ". xml"; Файл = Новый Файл(ИмяФайла); Если Не Файл. Существует() Тогда Возврат; КонецЕсли; // *** Чтение документов XML // Попытаться открыть файл. ЧтениеXML = Новый ЧтениеXML; Попытка ЧтениеXML. ОткрытьФайл(ИмяФайла); Исключение Сообщение = Новый СообщениеПользователю; Сообщение. Текст = " Невозможно открыть файл обмена данными. "; Сообщение. Сообщить(); Возврат; КонецПопытки; Сообщение = Новый СообщениеПользователю; Сообщение. Текст = " -------- Загрузка из " + Строка(ЭтотОбъект) + " --------- "; Сообщение. Сообщить(); Сообщение = Новый СообщениеПользователю; Сообщение. Текст = " – Считывается файл " + ИмяФайла; Сообщение. Сообщить();
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|