Имя: Пароль:
1C
1С v8
Webservice 1C. Развернуть, исходя из запроса
0 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>
1 vde69
 
25.07.20
14:08
Закывающий тег написан с ошибкой, без слеша
2 seller7
 
25.07.20
14:23
(1) как я вижу, везде закрываются теги. Дело в том, что этот запрос не нами написан, а Клиентом, который требует под этот запрос развернуть вебсервис
3 acht
 
25.07.20
14:34
(2) > как я вижу

        </a:Part>
    <a:Parts>
</priceRequest>

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

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