Имя: Пароль:
1C
1С v8
Ошибка разбора SOAP сообщения: неверная версия сообщения.
0 HomoAlbus
 
24.11.15
12:08
Добрый день. Имеется простой веб-сервис на стороне 1С, который был опубликован в IIS.
Для проверки его работы создал простую функцию ping:

Функция ping(text, textRequest)
    textRequest = text + Строка(ТекущаяДата());
    ЗаписьЖурналаРегистрации("Ping",,text,textRequest);
КонецФункции

Первый параметр входной, второй выходной, оба string (http://www.w3.org/2001/XMLSchema)

При попытки получить данные из этого сервиса:

Определения = Новый WSОпределения(АдресWSDL, "Администратор", "111111");
Прокси = Новый WSПрокси(Определения, URI, "ERPExternalService", "ERPExternalServiceSoap");
Прокси.Пользователь = "Администратор";
Прокси.Пароль = "111111";
p1 = "test";
p2 = "";
ПолученныеДанные = Прокси.ping(p1, p2);

Получаю ошибку:
Ошибка вызова операции сервиса: {http://www.mycompany.ru/erp/external/ws}:ERPExternalService:ping()
по причине:
Ошибка разбора SOAP сообщения: неверная версия сообщения.

При этом отладка спокойно отрабатывает, а также запись в ЖР производится, т.е. проблема именно при разборе ответа.
Что я делаю не так? :)
1 HomoAlbus
 
24.11.15
12:23
Сам дурак, разобрался. В операции WS стоит тип возвращаемого значения string (http://www.w3.org/2001/XMLSchema), а я ничего не возвращаю в обработчике. А можно ли сделать ws операцию, которая не будет возвращать значения? Все необходимые данные передаются в выходной параметр.
2 HomoAlbus
 
24.11.15
12:30
Флажок "Возможно пустое" в свойствах операции частично помог. К сожалению совсем без возвращаемого значения, видимо, нельзя.