Имя: Пароль:
1C
 
Метод возврата сервис 1С
0 e2v
 
03.09.18
12:10
Для внешних клиентов создал сервис в 1С v8.3
Сервис работает, все нормально.
Но столкнулся с проблемой. Раньше не задавался вопросом. А теперь вон оно как.
Сервис 1С возвращает в пакете SOAP, что-то типа
<m:return xmlns:xs="http://www.w3.org/2001/XMLSchema";
</m:return>
Т.е. метод "return", а мне надо возвращать мои методы, которые понимает клиент.
Как оно сделать?
Доку читал, не нашел.
1 e2v
 
03.09.18
13:25
Чето тишина.
Кто последний в цари?
.....
Нет никого? Тогда я первый.
2 tesseract
 
03.09.18
17:41
>>Т.е. метод "return", а мне надо возвращать мои методы, которые понимает клиент.

Ну так заведи свой WebService и процедуру в нем. Описание методов будет отдавать нормально, проверяли.
3 e2v
 
04.09.18
10:16
>>Т.е. метод "return", а мне надо возвращать мои методы, которые понимает клиент.

Ну так заведи свой WebService и процедуру в нем. Описание методов будет отдавать нормально, проверяли.

Х-м-м. Хотел бы уточнить:
Завести свой WebService -это как? У меня есть web-сервис работающий на 1С. Он отвечает на запрос, но возвращает в пакете SOAP метод "return".
А какой надо завести сервис?
4 Сияющий в темноте
 
04.09.18
11:20
В базе 1с поправить описание веб сервиса или создать новый со своими функциями.
ну или уже смотреть в сторону хттп сервисов,там можно все,что угоднл возвращать
5 Вафель
 
04.09.18
11:22
(3) ты его не правильно вызываешь значит
6 catena
 
04.09.18
11:29
Ответ ws содержит не методы, а параметры. У каждого метода ws есть тип возвращаемого значения, его и нужно формировать со всеми необходимыми данными.
7 tesseract
 
04.09.18
12:12
(6) Причем задается это все в gui при создании самого WS.

>>но возвращает в пакете SOAP метод "return".

Он тебе ответ метода return возвращает.

WS ссылка тебе выдаст все описания твоего интерфейса. Чтобы его в клиенте не посмотреть?
8 e2v
 
04.09.18
12:50
Я видимо, что то не так объясняю.
Смотрю Fiddler ом Запросы и ответы.
Сервис (для отладки все убрал) имеет метод ReqVin(par1,par2)
Входящий запрос попадает в метод
Функция ReqVin(par1,par2)
  Возврат "тест";
КонецФункции

Смотрю Ответ.
Вижу такое:
soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">;
<soap:Body>
<m:reqVin xmlns:m="http://www.my.com/SRP">;
    <m:return xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">;;
        <reqvin> xmlns="http://www.bmw.com/SRP"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";;
            <Тест/>;
        /reqvin;
    </m:return>
</m:reqVin>
</soap:Body>
</soap:Envelope>
Делаю вывод, что Возврат "Тест" - породило метод "return".
По моему так? или нет?
9 Вафель
 
04.09.18
13:05
а что ты хочешь то? вроде в этом плане у 1с по спецификации все
10 tesseract
 
04.09.18
13:10
(9) Не все, но довольно близко.


>>Делаю вывод, что Возврат "Тест" - породило метод "return".

Какая-то странная логика. Тебе от WS метода "reqVin" вернулось значение "тест".  Откуда ты решил, что "return" являеться методом, тем более что SOAP ничего не порождает в принципе.  

Почитай еще раз документацию по внимательнее, не галопом.
11 e2v
 
04.09.18
13:21
Ну да вы правы.
1С отрабатывает. Но.
Предыстория.
Есть web-клиент он делает запросы по SOAP к серверу определенного метода. У меня задача написать на 1с web-сервис с ответом определенного вида,чтобы понимал клиент.
И вот наткнулся на то, что клиент ругается, что пришел не тот метод. Посмотрел Fiddler-ом , действительно 1С добавляет запись в пакет SOAP:
<m:return >
<m:return/>
и вкладывает туда запрашиваемый метод.
Если писать клиента, то нет разницы. А у меня нет выхода, мне надо добиться ответа нужного клиенту. Т.е. убрать return
12 catena
 
04.09.18
13:23
(11)Вид ответа WS определяет поставщик как бы.
13 e2v
 
04.09.18
13:32
(12) Вот я тоже прихожу к такому выводу.
Написал 1С-кам. Мож официально пошлют 8)))
14 tesseract
 
04.09.18
13:36
(11) Ну так это проблема старая. Если ты на тот самый сайт по продаже авто/запчастей. Так там проблема в другом.

>><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">;;

А у них другая схема для конвертика, поэтому и не понимают друг-друга. Там еще и типы данных добавили.
15 e2v
 
04.09.18
14:42
(14) Данные я кое как подобрал. Конверт и вложение в сервисе прописал. Сервис отвечает, пересылает данные, которые в схеме прописаны. Но из-за конструкции 1С ответа а запрос
<m:return xmlns:xs="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">;</m:return>;
конверт доходит до клиента, а тот не хочет ее понимать.
Вот думаю, кроме писанины на PHP ничего не придумаю. Буду пакет на лету фильтровать.
Хотя я не силен в этом.
Жду чего 1С-ки напишут.