Имя: Пароль:
1C
1С v8
Soap Запросы по wsdl
0 Su60ta_SunRise
 
06.10.20
21:42
Драсте
Создали веб сервис, опубликовали для получения запросов
Написали процедурку сделали ответ, все просто

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:inc="http://uri.seeburger.com/bisas/interfaces/IncomingWSCall_REDOUTE">;
   <soapenv:Header/>
   <soapenv:Body>
      <inc:HeaderElement>
         <inc:Application>?</inc:Application>
         <inc:Channel>?</inc:Channel>
         <inc:Environment>?</inc:Environment>
         <inc:TimeStamp>?</inc:TimeStamp>
      </inc:HeaderElement>
   </soapenv:Body>
</soapenv:Envelope>

вид запроса для клиента к нам, где <inc:HeaderElement> это название процедуры у нас, ниже идут параметры

Но просят сделать такой вид

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:inc="http://uri.seeburger.com/bisas/schema/IncomingWSCall_REDOUTE">;

   <soapenv:Header/>

   <soapenv:Body>

      <inc:HeaderElement>

         <inc:Application>?</inc:Application>

         <inc:Channel>?</inc:Channel>

         <inc:Environment>?</inc:Environment>

         <inc:TimeStamp>?</inc:TimeStamp>

      </inc:HeaderElement>

      <inc:MessageElement>

         <inc:MessageType>?</inc:MessageType>

         <inc:Sender>?</inc:Sender>

         <inc:Receiver>?</inc:Receiver>

         <inc:MessageTimeStamp>?</inc:MessageTimeStamp>

         <inc:Content>?</inc:Content>

      </inc:MessageElement>

   </soapenv:Body>

</soapenv:Envelope>

Вопрос: Как это расшифровать? два  вызова двух разных операций в одном запросе? Что вернуть при этом? (сейчас такое обращение к вебу вызывает ошибку формата)
Как такое организовать?

Если создать две операции в веб сервис то через прогу SOAP UI  вижу что и создается два запроса, в каждой обращение к своей процедуре на веб сервисе
1 Fragster
 
гуру
06.10.20
22:21
такое организовать можно только публикацией http сервиса и ручной работой с xml (там не сильно сложно через сериализатор, но все же). если понимания нет, то проще договориться с "той стороной" о том, чтобы ваш формат использовали
2 Su60ta_SunRise
 
07.10.20
08:45
(1) понял принял, спасибо
3 Su60ta_SunRise
 
08.10.20
01:36
Оказалось все проще. для создание такой структуры обмена нужно:
При создание веб сервиса мы указываем его операцию, где создаем два параметра HeaderElement и MessageElement
Создаем XDTO где указывает  тип обьекта HeaderElement и MessageElement внутри которых уже создаем  свойства:
для хедара
<inc:Application>?</inc:Application>

<inc:Channel>?</inc:Channel>

<inc:Environment>?</inc:Environment>

<inc:TimeStamp>?</inc:TimeStamp>
Для месаджа:
<inc:MessageType>?</inc:MessageType>

<inc:Sender>?</inc:Sender>

<inc:Receiver>?</inc:Receiver>

<inc:MessageTimeStamp>?</inc:MessageTimeStamp>

<inc:Content>?</inc:Content>

клацаем на свойства параметров нашей процедуры и указываем тип значения нашу созданную XDTO  где параметр хед это тип обьекта хед и мессадж аналогично, готово
4 Su60ta_SunRise
 
08.10.20
01:40
если модеры еще тут бывают, тему можно переименовать как "Передача параметров составного типа через веб сервис 1С"
5 Fragster
 
гуру
08.10.20
10:15
ну там не дословно то получится, что требуется.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой