Имя: Пароль:
1C
 
Подскажите по использованию внешних OData схем в 1С
0 VS-1976
 
14.11.17
10:22
Не получается использовать внешнюю схему полученную из REST сервиса с помощью команды $metadata.

Гружу так:

пФабрикаXDTO = Новый ФабрикаXDTO;
пЧтение = Новый ЧтениеXML;
пЧтение.ОткрытьФайл( пФайлСхемы );
пОбъектXDTO = пФабрикаXDTO.ПрочитатьXML( пЧтение );
пОбъектXDTO.Проверить();
Сериализатор = Новый СериализаторXDTO( пФабрикаXDTO );

Но 1С не понимает такие типы как Edm.Guid, Edm.String и т.д.

И по этому создание объекта через Сериализатор.ПрочитатьXDTO не проходит, так как 1С их пытается привести в типы схемы http://www.w3.org/2001/XMLSchema


Ошибка преобразования данных XDTO:
НачалоСвойства: {http://www.w3.org/2001/XMLSchema}anyType    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: Name    Форма: Атрибут    Тип: {http://www.w3.org/2001/XMLSchema}anySimpleType

Если кто нибудь сталкивался подскажите в какую сторону нужно копать?
1 hawksib
 
14.11.17
11:38
смущает строчка

пЧтение.ОткрытьФайл( пФайлСхемы );

синтаксис-помощник по этому поводу говорит следующее:

ЧтениеXML (XMLReader)
ОткрытьФайл (OpenFile)
Синтаксис:

ОткрытьФайл(<ИмяФайлаXML>, <Параметры>, <НаборСхемXML>, <Кодировка>)
Параметры:

<ИмяФайлаXML> (обязательный)

Тип: Строка.
Имя файла, содержащего текст XML.
<Параметры> (необязательный)

Тип: ПараметрыЧтенияXML.
Параметры чтения, которые будут использоваться при чтении данных XML.
<НаборСхемXML> (необязательный)

Тип: НаборСхемXML.
Набор схем XML, используемых при проверке читаемого документа XML.
Если набор схем указан, но не проверен и включена проверка документа XML, то будет выполнена проверка набора схем.
<Кодировка> (необязательный)

Тип: Строка.
Позволяет задать кодировку входного
2 VS-1976
 
14.11.17
12:12
(1) Дело не в кодировке. Дело в том что 1С не знает эти типы. Их можно теоретически подгрузить, но где их взять... хоть руками создавай схему...
Независимо от того, куда вы едете — это в гору и против ветра!