среда, 16 сентября 2015 г.

Таблица значений в XML и обратно в 1С с помощью XDTO

//##########################################
//https://rusanovdevlog.blogspot.ru/ - Разработка 1С (примеры кода)
//Rusanov M. (c)
//###########################################
//1. Сохраняем таблицу значений в XML
Процедура ВыгрузитьНастройки()
Режим = РежимДиалогаВыбораФайла.Сохранение;
ДиалогСохраненияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогСохраненияФайла.ПолноеИмяФайла = "РезервноеКопированиеНастроекОтчета_"+Формат(ТекущаяДата(),"ДФ=dd_MM_yyyy");
Фильтр = "Текст(*.XML)|*.XML";            
ДиалогСохраненияФайла.Фильтр = Фильтр;
ДиалогСохраненияФайла.МножественныйВыбор = Ложь;
ДиалогСохраненияФайла.Заголовок = "Выберите файл";
  Если ДиалогСохраненияФайла.Выбрать() Тогда
            ПутьКФайлу = ДиалогСохраненияФайла.ПолноеИмяФайла;
            Сериализатор = Новый СериализаторXDTO(ФабрикаXDTO);
            XML = Новый ЗаписьXML;
            XML.ОткрытьФайл(ПутьКФайлу);
            Данные = НастройкиСтрок.Выгрузить();
            Сериализатор.ЗаписатьXML(XML,Данные);                    
    КонецЕсли;
 КонецПроцедуры

//2. Загружаем таблицу значений из XML в табличную часть отчета.
Процедура ЗагрузитьНастройки()
              //Выбор файла
              Режим = РежимДиалогаВыбораФайла.Открытие;
              ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);        
              ДиалогОткрытияФайла.ПолноеИмяФайла = "";
              Фильтр = "Текст(*.XML)|*.XML";
              ДиалогОткрытияФайла.Фильтр = Фильтр;
              ДиалогОткрытияФайла.МножественныйВыбор = Ложь;             
              ДиалогОткрытияФайла.Заголовок = "Выберите файл для загрузки";
              Если ДиалогОткрытияФайла.Выбрать() Тогда 
                  ПутьКФайлу = ДиалогОткрытияФайла.ПолноеИмяФайла;
                  ЧтениеXML = Новый ЧтениеXML;
                  ЧтениеXML.ОткрытьФайл(ПутьКФайлу);
                  Сериализатор = Новый СериализаторXDTO(ФабрикаXDTO);
                  ТЗ = Сериализатор.ПрочитатьXML(ЧтениеXML,Тип("ТаблицаЗначений"));
                  ЧтениеXML.Закрыть();
              КонецЕсли;
              НастройкиСтрок.Очистить();
              НастройкиСтрок.Загрузить(ТЗ);
КонецПроцедуры

Комментариев нет:

Отправить комментарий