0
markers
04.07.18
✎
18:57
|
Доброго времени суток!
Пишу взаимодействие с API BroadSoft BroadWorks (Облачная АТС Билайн, Автосекретарь МТС и пр.), в данном виде взаимодействия, инициатором события выступает BroadWorks, а 1С у меня принимает через HTTP сервис от BroadWorks данные в формате XML и всё бы хорошо, есть схемы, я её даже загрузил в 1С, пишу следующий код:
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(ТелоСтрокой);
ТипСобытия = ФабрикаXDTO.Тип(";, "Event");
Событие = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ТипСобытия);
И получаю ошибку "Попытка создания объекта абстрактного типа", дело в том, что свойство Event имеет тип BaseEvent который является абстрактным. Не страшно - подумал я, и поменял тип Event на нужный мне который всегда один в моём случае, но возникла проблема уже в типе "EventData" который так-же является абстрактным и там уже нельзя намеренно ограничить тип, так как там будут разные типы и они будут нужны.
Пример XML:
Схемы:
Собственно задача, как загрузить данную XML с абстрактными типами?
Заранее спасибо!
|
|
1
markers
16.07.18
✎
06:30
|
Собственно сам и разобрался, ошибка моя была в том что я встроил схему в базу, чего делать вовсе не нужно было и простой код:
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(ТелоСтрокой);
Событие = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
спокойно загружает данные.
Правда всё-равно кривовато загружает эту схему (потерял некоторые нужные данные, и нет информации о типе объекта, которая необходима так как является важной состовляющей) и всё-равно пришлось парсить через ПостроительDOM, но на более простых схемах, можно обойтись и таким способом.
Спасибо за ответы, простите за поднятие мути со дна!
Всех благ!
|
|