Создан Web-Сервис. При выполнении любого метода, ответ оборачивается в return, для заказчика важно изменить это название на свое, т.к. данный сервис уже был интегрирован с другой программой (не 1С), сейчас мы переносим функционал (soap wsdl) с той программы в 1С.
При описании Wsdl схемы есть такой вот участок с ответом на запрос:
<xs:element name="GetAllWkCargoesResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="return" type="xs5:ArrayOfWkCargo" nillable="true"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Вопрос: Можно ли поменять имя обертки ответа? Вместо "return" на свое?
В интерфейсе не нахожу такой возможности
При описании Wsdl схемы есть такой вот участок с ответом на запрос:
<xs:element name="GetAllWkCargoesResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="return" type="xs5:ArrayOfWkCargo" nillable="true"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Вопрос: Можно ли поменять имя обертки ответа? Вместо "return" на свое?
В интерфейсе не нахожу такой возможности
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Вариант сделать на уровне HTTP-сервиса, который дергает Web-сервис, и корректирует ответ, костыль типа middleware.
Корректировать на уровне самого web сервиса врятли, т.к. оберткой занимается платформа.
Возможно ошибаюсь, т.к. больше работаю с HTTP, web сильно не ковырял.
Корректировать на уровне самого web сервиса врятли, т.к. оберткой занимается платформа.
Возможно ошибаюсь, т.к. больше работаю с HTTP, web сильно не ковырял.
Посмотрел внимательнее в типовые
За возврат данных отвечает функция и отдает строкой
в которой
Перехватите XML и поправьте как нужно.
За возврат данных отвечает функция и отдает строкой
Функция ПолучитьДанные(КодМобильногоКомпьютера)
УстановитьПривилегированныйРежим(Истина);
УзелОбмена = ПланыОбмена.МобильноеПриложение.НайтиПоКоду(КодМобильногоКомпьютера);
Если УзелОбмена.Пустая() Тогда
ВызватьИсключение(НСтр("ru='Неизвестное устройство - '") + КодМобильногоКомпьютера);
КонецЕсли;
Возврат ОбменМобильноеПриложениеОбщее.СформироватьЕдиныйПакетВыгрузки(УзелОбмена);
КонецФункции
Показатьв которой
ЗаписьСообщения.ЗакончитьЗапись();
Возврат Новый ХранилищеЗначения(ЗаписьXML.Закрыть(), Новый СжатиеДанных(9));
КонецФункции // СформироватьПакетОбмена()
Перехватите XML и поправьте как нужно.
(3) Здесь проблема в том, что заполняется и возвращается XDTO пакет (Какой это тип объекта в php я не знаю), и если даже преобразовать XDTO в XML, то в xml не будет того поля, которое нужно изменить.
Вот преобразованный XDTO пакет.
<?xml version="1.0"?>
<ArrayOfWkPlace xmlns="http://schemas.datacontract.org/2004/07/TDServer.ClientsModel.View.EShopViews.WK" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<WkPlace>
<ID>222</ID>
<Name>МВК</Name>
</WkPlace>
</ArrayOfWkPlace>
а со стороны например PHP это выглядит так:
Вот преобразованный XDTO пакет.
<?xml version="1.0"?>
<ArrayOfWkPlace xmlns="http://schemas.datacontract.org/2004/07/TDServer.ClientsModel.View.EShopViews.WK" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<WkPlace>
<ID>222</ID>
<Name>МВК</Name>
</WkPlace>
</ArrayOfWkPlace>
а со стороны например PHP это выглядит так:
Прикрепленные файлы:
(4) Возвращается XML, XDTO выступает как каркас при формировании.
Предположу что зависит от даных в "Возврат", потому что в типовой применяются варианты
Предположу что зависит от даных в "Возврат", потому что в типовой применяются варианты
Возврат Истина;
Возврат "";
Результат = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://www.1c.ru/SaaS/ExchangeAdministration/Common/2.4.5.1", "ExchangeFeatures"));
Возврат Результат;
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку("UTF-8");
ЗаписьXML.ЗаписатьОбъявлениеXML();
Фабрика.ЗаписатьXML(ЗаписьXML, ОбъектОбмена);
УдалитьФайлы(ИмяВременногоФайлаПравилОбмена);
Возврат Новый ХранилищеЗначения(ЗаписьXML.Закрыть(), Новый СжатиеДанных(9));
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот