Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Webservice 1C. Развернуть, исходя из запроса

Webservice 1C. Развернуть, исходя  из запроса
Я
   seller7
 
25.07.20 - 13:45
Есть достаточно необычная задача: необходимо развернуть вебсервис 1С, исходя из SOAP запроса, который отправляет Клиент. Что было сделано: запросили XSD, загрузили в XDTO-пакет, развернули вебсервис с нужными методам. Но не работает (ошибка 500). Может кто сталкивался, помогите плиз. Вот пример запроса:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">;
    <s:Header>
        <requestRootId xmlns="http://schemas.microsoft.com/application-insights">100100</requestRootId>;
        <requestId xmlns="http://schemas.microsoft.com/application-insights">451289</requestId>;
    </s:Header>
    <s:Body>
        <GetPrice xmlns="http://tempuri.org/">;
            <priceRequest xmlns:a="http://schemas.datacontract.org/2004/07/com.Ordering";
                xmlns:i="http://www.w3.org/2001/XMLSchema-instance">;
                <a:Currency>EUR</a:Currency>
                <a:CurReference>12345</a:CurReference>
                <a:CurNumber>843</a:CurNumber>
                <a:LocationCode>LocationCode1</a:LocationCode>
                <a:OrderType>Stock</a:OrderType>
                <a:Parts>
                    <a:Part>
                        <a:PartNumber>1825005</a:PartNumber>
                        <a:Quantity>1</a:Quantity>
                        <a:UnitOfMeasure>Piece</a:UnitOfMeasure>
                    </a:Part>
                <a:Parts>
            </priceRequest>
        </GetPrice>
    </s:Body>
</s:Envelope>
   vde69
 
1 - 25.07.20 - 14:08
Закывающий тег написан с ошибкой, без слеша
   seller7
 
2 - 25.07.20 - 14:23
(1) как я вижу, везде закрываются теги. Дело в том, что этот запрос не нами написан, а Клиентом, который требует под этот запрос развернуть вебсервис
   acht
 
3 - 25.07.20 - 14:34
(2) > как я вижу
        </a:Part>
    <a:Parts>
</priceRequest>

Так клиенту и передайте
   seller7
 
4 - 25.07.20 - 14:38
(1) (3) спасибо, за замечание. А если допустить, что он все-таки будет закрываться, то как от запроса развернуть вебсервис (обычно же на оборот: разворачивают вебсервис и под него уже делаются запросы)
   vde69
 
5 - 25.07.20 - 14:53
(4) это неважно, вебсервис работает по определённой схеме xdto, эту схему вполне можно нарисовать по запросу
   acht
 
6 - 25.07.20 - 14:57
(4) Непонятно, что вы там в (0) делали - "Что было сделано: запросили XSD, загрузили в XDTO-пакет, развернули вебсервис с нужными методам".

Запросить у клиента полную спецификацию. По стандарту SOAP, все что происходит внутри Body - оно на усмотрение сервиса. Можно пробовать угадывать мысли, опираясь на https://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383533 Но как вы там будете отличать список от одиночного элемента, выделять обязательные или nillable параметры - науке неизвестно.
   acht
 
7 - 25.07.20 - 14:59
(5) Ну нарисуй по приведенному запросу структуру ожидаемого ответа.
   seller7
 
8 - 25.07.20 - 15:11
(5) так и сделано: их схема загружена успешно в пакет XDTO, на основе которого развернут вебсервис, но только он не принимает такой запрос, который указал в шапке (с учетом корректного закрытия тега)
   acht
 
9 - 25.07.20 - 15:14
(8) показывай их схему
   Serginio1
 
10 - 25.07.20 - 16:56
А 1С вообще хидеры поддерживает? v8: soap:Header
   acht
 
11 - 25.07.20 - 17:06
(10) ЕМНИП посылать не умеет, при запросе к себе - игнорирует.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.