Имя: Пароль:
1C
1С v8
Веб-сервис, входящий xdto преобразовать в xml
0 Трипиэль
 
11.10.16
17:53
Всем, привет.

У меня есть веб-сервис. У него метод с параметром типа, описанного с помощью xdto-пакета. Вот этот параметр я хочу преобразовать в xml через ФабрикуXDTO.

Конструкция типа:

  Запись = Новый ЗаписьXML;
  Запись.УстановитьСтроку();

  ФабрикаXDTO.ЗаписатьXML(Запись, ВходящийОбъект, ЛокальноеИмя, URIПространстваИмен, , НазначениеТипаXML.Явное);

  ДанныеXML = Запись.Закрыть();

не работает, видимо, потому что у входящего объекта тип значения определен не моей внутренней фабрикой. То есть, как я понимаю, мне надо создать фабрику на основании входящего объекта, что-то типа:

  МояФабрика = Новый ФабрикаXDTO(ВходящийОбъект);

Но это тоже не работает.
Вариант обходить всю структуру по порядку оставил на крайний случай.

Помогите кто чем может)) Спасибо.
1 Fragster
 
гуру
11.10.16
18:21
очень непонятно написано. может быть поможет тестовая обработка из http://fragster.ru/wsfor1c/ (получение фабрики из wsdl там есть)
2 Oncl
 
11.10.16
18:35
ЗаписьXML = Новый ЗаписьXML;
        
        ЗаписьXML.УстановитьСтроку();
        ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, Incoming_data);
        XmlText = ЗаписьXML.Закрыть();
3 Oncl
 
11.10.16
18:36
Incoming_data это входящий xml пакет веб сервиса
4 Трипиэль
 
12.10.16
09:25
(1) спасибо, но получение фабрики из wdsl тут ни при чём.
5 Asmody
 
12.10.16
09:32
(0) Надо брать фабрику от веб-сервиса.
6 Stepa86
 
12.10.16
09:34
А если вот так?


ОпределениеWS = Новый WSОпределения( ... ; // или из wsСсылки

фабрика = ОпределениеWS.ФабрикаXDTO;

ответXML = Новый ЧтениеXML;
ответXML.УстановитьСтроку( пТекстОтвета );
    
ответ = фабрика.ПрочитатьXML( ответXML );
7 Трипиэль
 
12.10.16
09:55
(6) спасибо.
8 Трипиэль
 
12.10.16
09:59
(0) в общем, рабочие оба варианта, и (0) , и (2) . просто я затупил, и вызывал функцию общего модуля из внешней обработки для отладки, и получается, что тип ВходящегоОбъекта был описан не через опубликованный веб-сервис, а через WSОпределение этой самой обработки, и поэтому шла ругань на тип.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший