Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

XDTO, абстрактный тип

XDTO, абстрактный тип
Я
   markers
 
04.07.18 - 18:57
Доброго времени суток!
Пишу взаимодействие с API BroadSoft BroadWorks (Облачная АТС Билайн, Автосекретарь МТС и пр.), в данном виде взаимодействия, инициатором события выступает BroadWorks, а 1С у меня принимает через HTTP сервис от BroadWorks данные в формате XML и всё бы хорошо, есть схемы, я её даже загрузил в 1С, пишу следующий код:
   ЧтениеXML = Новый ЧтениеXML;

   ЧтениеXML.УстановитьСтроку(ТелоСтрокой);
        
   ТипСобытия = ФабрикаXDTO.Тип("http://schema.broadsoft.com/xsi";, "Event");
   Событие = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ТипСобытия);
И получаю ошибку "Попытка создания объекта абстрактного типа", дело в том, что свойство Event имеет тип BaseEvent который является абстрактным. Не страшно - подумал я, и поменял тип Event на нужный мне который всегда один в моём случае, но возникла проблема уже в типе "EventData" который так-же является абстрактным и там уже нельзя намеренно ограничить тип, так как там будут разные типы и они будут нужны.
Пример XML: https://yadi.sk/d/cnb1z9743YmTW6
Схемы: https://yadi.sk/d/Q4rMnJ3C3YmU6z
Собственно задача, как загрузить данную XML с абстрактными типами?
Заранее спасибо!
 
 
   markers
 
1 - 16.07.18 - 06:30
Собственно сам и разобрался, ошибка моя была в том что я встроил схему в базу, чего делать вовсе не нужно было и простой код:
   ЧтениеXML = Новый ЧтениеXML;
   ЧтениеXML.УстановитьСтроку(ТелоСтрокой);
   Событие = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
спокойно загружает данные.
Правда всё-равно кривовато загружает эту схему (потерял некоторые нужные данные, и нет информации о типе объекта, которая необходима так как является важной состовляющей) и всё-равно пришлось парсить через ПостроительDOM, но на более простых схемах, можно обойтись и таким способом.
Спасибо за ответы, простите за поднятие мути со дна!
Всех благ!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует