|
Ошибка при обращению к Web-сервису | ☑ | ||
---|---|---|---|---|
0
Javist
16.03.16
✎
13:31
|
Смысл таков. Из вне с помощью php скрипта обращаемся к Web-сервису. В него передаем параметр, а именно номер телефона в ответ мы хотим получить Контрагента.
Создали операцию GetParam Тип возравщаяемого String Создали параметр number далее в модуле пишем Функция GetParam(number) возврат number; КонецФункции Далее обращаемся скриптом к веб сервису и у нас приходит ответ object(stdClass)#2 (1) { ["return"]=> string(11) "34263947634" } Далее мы редактируем модуль Запрос.Текст = " |ВЫБРАТЬ |КонтактнаяИнформация.Объект |ИЗ |РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация |ГДЕ |КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонКонтрагента) |И |КонтактнаяИнформация.Представление ПОДОБНО &Телефон "; Запрос.УстановитьПараметр("Телефон", number); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл number = Выборка.Объект; КонецЦикла; возврат number; КонецФункции И у нас появляется при обращении скриптом ошибка 500 Что не так? |
|||
1
Javist
16.03.16
✎
13:43
|
Кто нибудь работал с веб сервисами?
|
|||
2
Dmitriy_76
16.03.16
✎
13:45
|
попробуй так
Если Выборка.Следующий() Тогда number = Выборка.Объект.Наименование; Иначе number = ""; Конецесли; |
|||
3
Javist
16.03.16
✎
13:50
|
(2) то же самое
|
|||
4
Javist
16.03.16
✎
13:50
|
верней та же самая ошибка
|
|||
5
Javist
16.03.16
✎
13:52
|
(2) Причем код выше в обычных модулях отрабатывает нормально.
|
|||
6
Serginio1
16.03.16
✎
13:52
|
Ну и права на РегистрСведений.КонтактнаяИнформация и Справочник.ВидыКонтактнойИнформации должен быть.
Вообще лучше сначачала отлаживать локально, а затем уже отлаживать через вэб сервис. Выноси методы в отдельный модуль, а из вэб сервисов дергай их. Так же пиши ошибки в ЖР |
|||
7
Serginio1
16.03.16
✎
13:54
|
Например
Функция CreateOrder(TablePrices) // Вставить содержимое обработчика. Попытка возврат акВэбСервисы.CreateOrder(TablePrices) Исключение СтрОшибки=ОписаниеОшибки(); ЗаписьЖурналаРегистрации("CreateOrder",УровеньЖурналаРегистрации.Ошибка,,,СтрОшибки); ВызватьИсключение СтрОшибки; КонецПопытки КонецФункции |
|||
8
Serginio1
16.03.16
✎
13:57
|
Ну и number = Выборка.Объект;
Это никак не string Или сериализуй через СериализаторXDTO или возвращай простой тип |
|||
9
Javist
16.03.16
✎
14:01
|
(7) т.е у тебя аквэбСервисы где то в общих модулях?
|
|||
10
Serginio1
16.03.16
✎
14:05
|
(9) Да его проще отлаживать локально.
|
|||
11
Serginio1
16.03.16
✎
14:08
|
Ну и отлаживать проще через 1С
Веб сервисы 1с и SoapUi |
|||
12
Javist
16.03.16
✎
14:54
|
(11) вынес в общий модуль
из модуля веб сервиса вызываю Функция GetParam(number) number = ТМаршрут.ВахВах(number); возврат number; КонецФункции Общий модуль Поставил галочку Привелигированный И все равно ошибка 500 |
|||
13
Serginio1
16.03.16
✎
15:08
|
Еще раз, что за тип возвращает ТМаршрут.ВахВах(number)?
Смотри 9 v8: Ошибка при вызове web-сервиса 1C 8.3 (Внутренняя ошибка. Ошибка инициализации б) |
|||
14
Serginio1
16.03.16
✎
15:08
|
Пиши в ЖР ошибки.
|
|||
15
Javist
16.03.16
✎
15:14
|
(13)
Выборка.Объект |
|||
16
Javist
16.03.16
✎
15:14
|
Как быть если не хочется использовать XTDO?
|
|||
17
Serginio1
16.03.16
✎
15:15
|
(16) Читай ссылки. Смотри 13
|
|||
18
Javist
16.03.16
✎
16:34
|
(17) Когда я получаю значение из пхп скрипта в веб сервисе и потом делаю запрос. Мне нужно делать десериализацию? Или достаточно сериализовать?
|
|||
19
Serginio1
16.03.16
✎
16:41
|
(18) Зачем тебе в ПХП объект? Проще его сериализовать в JSON строку
|
|||
20
Serginio1
16.03.16
✎
16:44
|
||||
21
Serginio1
16.03.16
✎
16:53
|
||||
22
Javist
16.03.16
✎
16:59
|
хор, но сначала на XML реализую (20)
(21) спасибо |
|||
23
Javist
16.03.16
✎
17:07
|
(21) у меня только вопрос.
<?php ini_set("soap.wsdl_cache_enabled", "0"); $client = new SoapClient("http://192.168.1.1/test/ws/ws1.1cws?wsdl" , array('login' => "admim", 'password' => "2$ $params["number"] = "343434"; $result = $client->GetParam($params); Var_dump($result); ?> Скрипт передает в веб сервис number Далее когда я этот number пихаю в запрос. Этот Number нужно десериализовать? |
|||
24
Serginio1
16.03.16
✎
17:16
|
Если ты укажешь нужный возвращаемый тип (XDTO), то все автоматически сериализеутся десериализуется.
|
|||
25
Serginio1
16.03.16
✎
17:18
|
Number у тебя строка. А вот то, что ты возвращаешь Выборка.Объект строкой не является
|
|||
26
Javist
16.03.16
✎
17:20
|
(25) Возвращю Выборка.Тип
Пока дебаг у меня :) Просто этот запрос еще вершина айсберга. Там дальше пойдут запросы. |
|||
27
Javist
16.03.16
✎
17:20
|
на основе его
|
|||
28
Serginio1
16.03.16
✎
17:24
|
(27) Читай 21 разбирайся с ФабрикаXDTO ОбъектXDTO итд
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |