Имя: Пароль:
1C
1С v8
Сериализация объекта из XML
,
0 Myti
 
27.09.11
18:17
Такая вот задачка.....
Есть сформированный файл xml

<РезультатЗапроса xmlns="http://www .MyCompany.ru/shipment" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <Результат xmlns:d2p1="http://v8.1c.ru/8.1/data/enterprise/current-config" xsi:type="d2p1:CatalogObject.Валюты">
 <d2p1:Ref>f9efbe90-e5af-11e0-ab6e-001731519fe9</d2p1:Ref>
 <d2p1:DeletionMark>false</d2p1:DeletionMark>
 <d2p1:Code>000000002</d2p1:Code>
 <d2p1:Description>Доллар</d2p1:Description>
 <d2p1:Курс>30</d2p1:Курс>
 <d2p1:Дата>2011-09-25T00:00:00</d2p1:Дата>
 <d2p1:ВалютаУчета />
 </Результат>
- <Результат xmlns:d2p1="http://v8.1c.ru/8.1/data/enterprise/current-config" xsi:type="d2p1:CatalogObject.Валюты">
 <d2p1:Ref>f9efbe8f-e5af-11e0-ab6e-001731519fe9</d2p1:Ref>
 <d2p1:DeletionMark>false</d2p1:DeletionMark>
 <d2p1:Code>000000001</d2p1:Code>
 <d2p1:Description>Руб</d2p1:Description>
 <d2p1:Курс>1</d2p1:Курс>
 <d2p1:Дата>2011-09-26T00:00:00</d2p1:Дата>
 <d2p1:ВалютаУчета />
 </Результат>
 </РезультатЗапроса>

На основе схем xdto
Запись в файл xml проходит без проблемм, а вот на загрузке никак не могу получить СериализаторXDTO..........


Может кто встречался с подобной проблемой....прошу помощииии
1 Myti
 
27.09.11
18:19
Тупею чтоль....но отладчик никак не идет по строкам ((((
2 Myti
 
27.09.11
18:22
не падай..............веточка )
3 Myti
 
28.09.11
11:04
сегодня еще подниму...пожалуй...
4 Maxus43
 
28.09.11
11:06
код загрузки покажеш?
5 Myti
 
28.09.11
11:08
Конечно...их  много )
6 Maxus43
 
28.09.11
11:08
// Открываем XML-документ для чтения
   Чтение = Новый ЧтениеXML;
   
   Чтение.ОткрытьФайл("c:\new.xml");
   
   // Производим считывание всех данных XML-документа
   // используя фабрику XDTO, содержащую полученную схему XML
   Данные = ФабрикаXDTO.ПрочитатьXML(Чтение);
   
   Если Данные = Неопределено Тогда
       
       Возврат;
       
   КонецЕсли;
   
   // Обходим полученные данные
   Для Каждого Элемент Из Данные.СписокТоваров Цикл
       
       НаименованиеЭлемента = Элемент.Наименование;
       ПризнакКомплекта     = Элемент.ПризнакКомплекта;
       КодЭлемента         = Элемент.Код;
       
       // Обрабатываем полученные данные
       Сообщить(НаименованиеЭлемента + " " + ПризнакКомплекта + " " + КодЭлемента);
       
   КонецЦикла;
7 Myti
 
28.09.11
11:08
ЧтениеXML = Новый ЧтениеXML;
   ЧтениеXML.ОткрытьФайл(ИмяФайла);
   ЧтениеXML.ПерейтиКСодержимому();
   
   ЧтениеXML.Прочитать();
   
   Пока ЧтениеXML.ТипУзла<>ТипУзлаXML.КонецЭлемента Цикл
       //ЧтениеXML.Прочитать();
       Если ЧтениеXML.ЛокальноеИмя = "РезультатЗапроса" Тогда
           //Продолжить;
           //ЧтениеXML.Прочитать();
           ЧтениеXML.Пропустить() ;
       Иначе
           
       
       Объект = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
       Объект.ОбменДанными.Загрузка = Истина;
       Объект.Записать();
       КонецЕсли;    
   КонецЦикла;
   ЧтениеXML.Закрыть();
8 Myti
 
28.09.11
11:09
Необходимо попасть на определенный узел что бы сериализовать его
9 Myti
 
28.09.11
11:10
Пробовал через ПостроительDOM однако там метода сериализации нет....
10 Myti
 
28.09.11
11:50
Изкурил напрочь весь XML, не могу найти решения и все  =(((
11 Myti
 
28.09.11
13:31
Неужели настолько сложная задача? =(
12 H A D G E H O G s
 
28.09.11
13:37
Может все же не СериализаторXDTO.ПрочитатьXML() а
СериализаторXDTO.ПрочитатьXDTO()
?
13 Myti
 
28.09.11
13:40
(12) - у меня данные именно в файле xml и смысл читать xdto  если по его структуре создан xml///
Закон Брукера: Даже маленькая практика стоит большой теории.