Помогите пожалуйста преобразовать ответ сервера в структуру. Интересует именно значение SKU_CreateUpdateResult.
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<SKU_CreateUpdateResponse xmlns="http://cowms.ru/service">
<SKU_CreateUpdateResult>211895</SKU_CreateUpdateResult>
<ErrorMessage />
</SKU_CreateUpdateResponse>
</soap:Body>
</soap:Envelope>
ПоказатьПо теме из базы знаний
- Выгрузка документа в XML произвольной структуры (+пример для выгрузки в ECOD)
- Упрощаем чтение XML или любите СП — источник знаний (2)
- Универсальный конвертер XML в Таблицу значений + вывод XML в печатную форму (v 7.7)
- Создание в 1С 7.7 XML в формате EnterpriseData (универсальный формат обмена), версия 1.5. Инструкции и примеры переноса данных из устаревшей конфигурации 1С 7.7 в любую современную 1С 8.3, поддерживающую EnterpriseData, через Конвертацию данных 3
- Загрузка XML произвольной структуры
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
&НаСервереБезКонтекста
Функция ПрочитатьXMLВСтруктуру(Строка)
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(Строка);
Результат = СериализаторXDTO.ПрочитатьXML(ЧтениеXML, Тип("Структура"));
ЧтениеXML.Закрыть();
Возврат Результат;
КонецФункции
Показать
(3)
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: {http://schemas.xmlsoap.org/soap/envelope/ }Envelope Форма: Элемент Тип: {http://v8.1c.ru/8.1/data/core }Structure
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: {http://schemas.xmlsoap.org/soap/envelope/ }Body Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema }anyType
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(Строка);
Результат = СериализаторXDTO.ПрочитатьXML(ЧтениеXML, Тип("Структура"));
ЧтениеXML.Закрыть();
ЧтениеXML.УстановитьСтроку(Строка);
Результат = СериализаторXDTO.ПрочитатьXML(ЧтениеXML, Тип("Структура"));
ЧтениеXML.Закрыть();
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: {
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: {
Вариант получить значение по реквизиту
ЧтениеXML = Новый ЧтениеXML();
ЧтениеXML.УстановитьСтроку(Результат.ПолучитьТелоКакСтроку());
ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);
ДокументДОМ.ПолучитьЭлементыПоИмени("SKU_CreateUpdateResult")[0].ТекстовоеСодержимое
Чета странное какое-то задание преобразования "ответа сервера в структуру". Вот есть у Вас сервер, на нем есть веб-сервис - SOAP. Вот вы создаете к нему подключение (надеюсь, пользуетесь стандартным механизмом платформы для "дергания" сервиса). В итоге у Вас должен какой-то такой код быть:
Вот в переменной "Ответ" и так "Структура" (т.е. объект XDTO), который Вы "подсветили" как правильный ответ. Или опять велосипеды изобретаем и дергаем веб-сервис с помощью подножных COM-объектов? )))
Ответ = Сервис.ФункцияСервиса(Параметры);
Вот в переменной "Ответ" и так "Структура" (т.е. объект XDTO), который Вы "подсветили" как правильный ответ. Или опять велосипеды изобретаем и дергаем веб-сервис с помощью подножных COM-объектов? )))
(10) https://infostart.ru/public/721872/ - вот неплохое пошаговое руководство о том, как дергать веб-сервисы из 1С.
Обработка результата
В рецепте 1 мы чаще всего получаем готовый XDTO-объект и работаем с ним как со структурой. Во всех остальных случаях можно преобразовывать xml-ответ в XDTO
Тут все просто.
В рецепте 1 мы чаще всего получаем готовый XDTO-объект и работаем с ним как со структурой. Во всех остальных случаях можно преобразовывать xml-ответ в XDTO
Если Результат.КодСостояния = 200 Тогда
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(Результат.ПолучитьТелоКакСтроку());
ОбъектОтвет = СвояФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
Сообщить(ОбъектОтвет.Body.Response.RESPONSE_ID);
Сообщить(ОбъектОтвет.Body.Response.RESPONSE_TEXT);
КонецЕсли;
ПоказатьТут все просто.
(14)Так смысл в том, что мне надо дернуть данные из ответа с структурированном виде.
Например тут, как мне их вытащить. Тут уже Фабрика не работает:
Например тут, как мне их вытащить. Тут уже Фабрика не работает:
Код |
---|
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<Income_GetFactResponse xmlns="http://cowms.ru/inbound">
<Income_GetFactResult>2019-11-08T09:18:15.268238+03:00</Income_GetFactResult>
<Income_Positions>
<Income_Positions>
<IncomeRequest_PositionCode>02a94191-6804-4ef4-9360-cc3500068966-1</IncomeRequest_PositionCode>
<Sku_id>211895</Sku_id>
<Unit_id>784</Unit_id>
<StockType_id>0</StockType_id>
<Qty>20.000000</Qty>
<ClientOrder_PositionCode />
<Serial />
<Series />
<ExpDate>2999-12-31T00:00:00</ExpDate>
</Income_Positions>
<Income_Positions>
<IncomeRequest_PositionCode>02a94191-6804-4ef4-9360-cc3500068966-2</IncomeRequest_PositionCode>
<Sku_id>211917</Sku_id>
<Unit_id>784</Unit_id>
<StockType_id>0</StockType_id>
<Qty>3.000000</Qty>
<ClientOrder_PositionCode />
<Serial />
<Series />
<ExpDate>2999-12-31T00:00:00</ExpDate>
</Income_Positions>
</Income_Positions>
<ErrorMessage />
</Income_GetFactResponse>
</soap:Body>
</soap:Envelope> Показать полностью |
Такой ответ таким способом не обрабатывает. Есть идеи?
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<Income_GetFactResponse xmlns="http://cowms.ru/inbound">
<Income_GetFactResult>2019-11-08T09:18:15.268238+03:00</Income_GetFactResult>
<Income_Positions>
<Income_Positions>
<IncomeRequest_PositionCode>02a94191-6804-4ef4-9360-cc3500068966-1</IncomeRequest_PositionCode>
<Sku_id>211895</Sku_id>
<Unit_id>784</Unit_id>
<StockType_id>0</StockType_id>
<Qty>20.000000</Qty>
<ClientOrder_PositionCode />
<Serial />
<Series />
<ExpDate>2999-12-31T00:00:00</ExpDate>
</Income_Positions>
<Income_Positions>
<IncomeRequest_PositionCode>02a94191-6804-4ef4-9360-cc3500068966-2</IncomeRequest_PositionCode>
<Sku_id>211917</Sku_id>
<Unit_id>784</Unit_id>
<StockType_id>0</StockType_id>
<Qty>3.000000</Qty>
<ClientOrder_PositionCode />
<Serial />
<Series />
<ExpDate>2999-12-31T00:00:00</ExpDate>
</Income_Positions>
</Income_Positions>
<ErrorMessage />
</Income_GetFactResponse>
</soap:Body>
</soap:Envelope>
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<Income_GetFactResponse xmlns="http://cowms.ru/inbound">
<Income_GetFactResult>2019-11-08T09:18:15.268238+03:00</Income_GetFactResult>
<Income_Positions>
<Income_Positions>
<IncomeRequest_PositionCode>02a94191-6804-4ef4-9360-cc3500068966-1</IncomeRequest_PositionCode>
<Sku_id>211895</Sku_id>
<Unit_id>784</Unit_id>
<StockType_id>0</StockType_id>
<Qty>20.000000</Qty>
<ClientOrder_PositionCode />
<Serial />
<Series />
<ExpDate>2999-12-31T00:00:00</ExpDate>
</Income_Positions>
<Income_Positions>
<IncomeRequest_PositionCode>02a94191-6804-4ef4-9360-cc3500068966-2</IncomeRequest_PositionCode>
<Sku_id>211917</Sku_id>
<Unit_id>784</Unit_id>
<StockType_id>0</StockType_id>
<Qty>3.000000</Qty>
<ClientOrder_PositionCode />
<Serial />
<Series />
<ExpDate>2999-12-31T00:00:00</ExpDate>
</Income_Positions>
</Income_Positions>
<ErrorMessage />
</Income_GetFactResponse>
</soap:Body>
</soap:Envelope>
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот