Имя: Пароль:
1C
1С v8
Как прочитать из xml в XDTO объект данных 1С любой конфигурации через anyType?
0 TormozIT
 
гуру
21.02.12
12:37
Есть такой xml-файл

<CatalogObject.Пара>
  <Ref>9be92a19-4d80-11e1-aa0d-0025902accc5</Ref>
  <БазовоеСообщение xmlns:xsi=" www.w3.org/2001/XMLSchem... »»" xsi:nil="true"/>
</CatalogObject.Пара>

Хочу прочитать его в объект XDTO с типом anyType таким кодом

Чтение = Новый ЧтениеXML;
Чтение.УстановитьСтроку(МояСтрока);
аа = ФабрикаXDTO.ПрочитатьXML(Чтение);

, но сталкиваюсь с ошибкой

Чтение объекта типа: { www.w3.org/2001/XMLSchem... »» - [4,26]
Проверка дополнительного свойства:
  форма: Элемент
  имя: БазовоеСообщение
по причине:
Ошибка проверки данных XDTO:
Структура объекта не соответствует типу: { www.w3.org/2001/XMLSchem... »»

по причине:
Несоответствие типов XDTO:
Свойство не может содержать неопределенное значение

Подскажите как выйти из ситуации.
1 TormozIT
 
гуру
21.02.12
12:41
Ошибся. Исправляюсь

Есть такой xml-файл

<CatalogObject.Пара>
  <Ref>9be92a19-4d80-11e1-aa0d-0025902accc5</Ref>
  <БазовоеСообщение xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
</CatalogObject.Пара>



Хочу прочитать его в объект XDTO с типом anyType таким кодом

Чтение = Новый ЧтениеXML;
Чтение.УстановитьСтроку(МояСтрока);
аа = ФабрикаXDTO.ПрочитатьXML(Чтение);


, но сталкиваюсь с ошибкой



Чтение объекта типа: {http://www.w3.org/2001/XMLSchema}anyType - [4,26]
Проверка дополнительного свойства:
  форма: Элемент
  имя: БазовоеСообщение
по причине:
Ошибка проверки данных XDTO:
Структура объекта не соответствует типу: {http://www.w3.org/2001/XMLSchema}anyType

по причине:
Несоответствие типов XDTO:
Свойство не может содержать неопределенное значение



Подскажите как выйти из ситуации.
2 TormozIT
 
гуру
27.02.12
11:07
Производитель сообщил, что вероятно это - ошибка платформы. Идет расследование.
3 H A D G E H O G s
 
27.02.12
11:43
4 H A D G E H O G s
 
27.02.12
11:43
пост 2,3,4
5 pumbaEO
 
27.02.12
12:10
(4) Как он узнает имя фабрики и тип для неизвестного типа? Будет там справочник: "Труляля" и как тогда?
6 H A D G E H O G s
 
27.02.12
12:34
(5)
   Сериализатор = Новый СериализаторXDTO(ФабрикаXDTO);
   Номенклатура=Справочники.Номенклатура.ПустаяСсылка();
   ОбъектXDTO = Сериализатор.ЗаписатьXDTO(Номенклатура);
   ТипОбъектаXDTO=ОбъектXDTO.Тип();
   ЗаписьXML = Новый ЗаписьXML;
   ЗаписьXML.ОткрытьФайл("C:\new.xml");
   ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, ОбъектXDTO);
   ЗаписьXML.Закрыть();
   
   ЧтениеXML = Новый ЧтениеXML;
   ТипОбъектаXDTO=ФабрикаXDTO.Тип("http://v8.1c.ru/8.1/data/enterprise/current-config","CatalogRef.Номенклатура");
   ЧтениеXML.ОткрытьФайл("C:\new.xml");
   ОбъектXDTO=ФабрикаXDTO.ПрочитатьXML(ЧтениеXML,ТипОбъектаXDTO);
   Сериализатор=Новый СериализаторXDTO(ФабрикаXDTO);
   Номенклатура2=Сериализатор.ПрочитатьXDTO(ОбъектXDTO);
7 H A D G E H O G s
 
27.02.12
12:35
ТипОбъектаXDTO=ФабрикаXDTO.Тип("http://v8.1c.ru/8.1/data/enterprise/current-config","CatalogRef.Номенклатура");
8 pumbaEO
 
27.02.12
12:41
>> Как прочитать из xml в XDTO объект данных 1С любой конфигурации
Пусть меня TormozIT поправит, но по задаче при чтении xml файла, я не знаю есть ли такой в принципе "CatalogRef.Номенклатура" ...
9 H A D G E H O G s
 
27.02.12
12:44
(8) Проблемы индейцев.
10 TormozIT
 
гуру
27.02.12
13:03
Читаю объект произвольной конфигурации. Поэтому читать можно только через AnyType.
2 + 2 = 3.9999999999999999999999999999999...