|
Ошбика веб-сервисе: Обязательное возвращаемое значение не задано |
☑ |
0
YVGroshkov
24.12.12
✎
16:44
|
Функция test()
ПеременнаяМассив = Новый Массив(4);
ПеременнаяМассив.Вставить(0, "Нулевой");
ПеременнаяМассив.Вставить(1, "Первый");
ПеременнаяМассив.Вставить(2, "Второй");
ПеременнаяМассив.Вставить(3, "Третий");
Возврат ПеременнаяМассив;
КонецФункции
XDTO
тип Array
Где я ошибся?
|
|
1
На стороне добра
24.12.12
✎
17:06
|
Как воспроизвести ситуацию?
|
|
2
YVGroshkov
24.12.12
✎
17:10
|
Создать веб сервис с операцией test
код модуля веб-сервиса приведён выше
в xdto веб-сервиса нужно указать
Потом из скрипта обратиться вот так:
$client = new SoapClient('',
array(
'login' => "user",
'password' => "pass",
'trace' => 1,
'exeption' => 1
)
);
try {
echo "<pre>\n";
VarDumper::dump($client->test());
echo "\n</pre>\n";
} catch (SoapFault $exception) {
echo $exception;
}
echo "<hr />";
echo "<pre>";
echo "Запрос :\n".htmlspecialchars($client->__getLastRequest()) ."\n";
echo "Ответ:\n".htmlspecialchars($client->__getLastResponse())."\n";
echo "</pre>";
|
|
3
YVGroshkov
24.12.12
✎
17:13
|
блин, что-то форма ссылки уродует :(
|
|
4
Serginio1
24.12.12
✎
17:14
|
Ну есть два подхода
XmlСтрока(ПеременнаяМассив);
Тип=ФабрикаXDTO.Тип(ИмяПространстваИмен,"Array");
Тип=ФабрикаXDTO.Создать(Тип,ПеременнаяМассив);
|
|
5
Serginio1
24.12.12
✎
17:17
|
СериализаторXDTO.ЗаписатьXDTO(ПеременнаяМассив)
|
|
6
Serginio1
24.12.12
✎
17:26
|
Кстати если ты посмотришь ПеременнаяМассив.Количество() то увидишь 8 элеменов.
Либо используй
ПеременнаяМассив.[0]="Нулевой";
Либо просто
ПеременнаяМассив = Новый Массив();
ПеременнаяМассив.Добавить("Нулевой");
|
|
7
Serginio1
24.12.12
✎
17:30
|
Есть еще вариант
СписокОбъектов = Фабрика.Создать(Фабрика.Тип("http://v8.1c.ru/8.1/data/core", "Array"));
ТипЗначения=Фабрика.Тип("http://v8.1c.ru/8.1/data/core","ValueListItemType");
ТипСтрока=Фабрика.Тип("http://www.w3.org/2001/XMLSchema","string");
Стр=Фабрика.Создать(ТипСтрока,"Мама мыла раму");
СписокОбъектов.value.Добавить(стр);
|
|
8
YVGroshkov
24.12.12
✎
18:03
|
Блин, зачитался и забыл, что нужно обязательно возвращать XML для веб-сервисов.
|
|
9
YVGroshkov
24.12.12
✎
18:26
|
Serginio1, спасибо.
|
|
10
Serginio1
24.12.12
✎
18:27
|
(8) Не XML, а ОбъектXDTO, который потом сериализуется
|
|
11
Serginio1
24.12.12
✎
18:27
|
10+ Поэтому XmlСтрока это ошибка. Каюсь.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший