Имя: Пароль:
1C
1С v8
Передача параметров в веб-сервис
,
0 Loyt
 
02.12.11
16:13
8.1

Разбираюсь с веб-сервисами
Создал тестовый веб-сервер с операцией TestOperation(ParamIn),
где ParamIn имеет тип string (http://www.w3.org/2001/XMLSchema)

Подключаюсь к нему через веб-ссылку, но при вызове операции выпадает ошибка несовпадения типов.

Как передать строку в параметр операции? Нужно какое-то преобразование типа делать?
1 Serginio1
 
02.12.11
17:44
Не надо делать никаких преобразований. Главное что бы тип параметра совпадали. 1С сама сделает преобразовани (внутри все приводится к строкам)
2 Loyt
 
06.12.11
08:07
Не приводит, что-то я сделал не так.

Пространство имён веб-серверу задал "http://www.w3.org/2001/XMLSchema"
Пакетов XDTO не подключал (я так понимаю, они для передачи сложных структур данных нужны, а у меня простейшие типы)

Вызываю функцию так:

ВебПрокси = WSСсылки.WSСсылка1.СоздатьWSПрокси("http://www.w3.org/2001/XMLSchema", "TestService1", "TestService1Soap");    
   
ParamIn = "eeeee";
paramOut = ВебПрокси.TestOperation1(ParamIn);

У TestOperаtion1 единственный параметр, входной, тип string (http://www.w3.org/2001/XMLSchema), возвращаемое значение того же типа.

Внутри TestOperation1 элементарная функция

Функция TestOperation1(ParamIn)
   ParamOut = "ZZZ " + ParamIn;
   Возврат ParamOut;
КонецФункции

При вызове процедуры выпадает исключение
"Ошибка при вызове метода контекста (TestOperation1): Несоответствие типов (параметр номер '1')"

В чём может быть проблема?
3 Loyt
 
06.12.11
09:53
up
4 Defender aka LINN
 
06.12.11
09:56
(2) "У TestOperаtion1 единственный параметр, входной, тип string (http://www.w3.org/2001/XMLSchema)"

ParamIn = "eeeee";
paramOut = ВебПрокси.TestOperation1(ParamIn);

Один я тут вижу, что параметр имеет несколько более иначе другой тип?
5 Amiralnar
 
06.12.11
09:59
(+1)
6 Amiralnar
 
06.12.11
09:59
(4) +1
7 Loyt
 
06.12.11
10:20
(4) Ок, возможно. Это и было вопросом в (0). Как передавать параметр?
8 Defender aka LINN
 
06.12.11
10:29
(7) Ответ таки в (2) уже таится.
Параметр = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "string"), ТекстXML);
9 Loyt
 
06.12.11
12:17
(8) спасибо
10 Serginio1
 
07.12.11
13:29
(0) Интересно у меня куча методов и такое преобразование нужно было для anyType.
А версия 8.1 какая?