Вызов функции Web-сервис из PHP с параметрами (2) #559829


#0 by egor2fsys
Прощу прощения за ранее созданную недотему :) Итак, есть сервис, с методом Reserve, которому нужно передавать параметр, пытаюсь вызвать это дело на пхп, однако параметр у метода построен на основе wsdl описания из этого сервиса. Т.е. есть параметр - CamperList, у него внутри есть тип Camper, который имеет тип, структура которого показана чуть ниже. С 1с удается вызвать все нормально. Как на пхп описать корректную передачу сервису параметра на основе другого параметра ? Код на пхп примерно такой: Однако пхп вполне справедливо ругается: PHP Fatal error:  SOAP-ERROR: Encoding: object hasn't 'CamperList' property in /var/www/html/ws2.php on line 25 SoapFault exception: [Client] SOAP-ERROR: Encoding: object hasn't 'CamperList' property in /var/www/html/ws2.php:25
#1 by egor2fsys
К 1 сообщению: Если вызвать echo print_r($client->__getFunctions, true); то получим среди прочих [14] => ReserveResponse Reserve(Reserve $parameters) Теперь если вызвать Array ( Т.е. в самом методе Reserve параметр является типом CamperList, но как его сконструировать в пхп чтобы корректно передать в метод ?
#2 by xReason
здесь форум для кулинаров вы ошиблись форумом
#3 by egor2fsys
Спасибо, и вам вкусно приготовить тогда.
#4 by dzsysop
Думаю проще будет объявить внутри метода много входных параметров, но если очень хочется то надо копать вот в этом направлении: только, боюсь, овчинка выделки не стоит
#5 by egor2fsys
Это я пробовал в первую очередь. Однако там не массив, а тип на основе типа веб-сервиса.
#6 by SeraFim
не совсем понял, но заметил одну фигню: если в 1Ске в веб-сервисе есть функция с параметрами: то в php нужно, чтобы массив параметров имел те же названия, что и параметры в функции. то есть:
#7 by egor2fsys
Ага, и так пробовал, все равно ругается на несоответствие типа параметра ...
#8 by Fragster
а чО за объект типа Reserve-то? может таки его надо совать?
#9 by egor2fsys
Это объект на основе описания веб-сервиса. Т.е. сервисе есть функция Reserve с параметром CamperList. Внутри типа CamperList есть тип Camper, который в свою очередь состоит уже из простых типов. Так это выглядит внутри описания:
#10 by Fragster
просто из следует, что функция хочет именно объект такого типа, а не массив
#11 by egor2fsys
А как ей в пхп передать объект нужного типа ?
#12 by Fragster
или вызвать функцию, которая его создает
#13 by nbIx
Можно вопросик. А как вы авторизуетесь?
#14 by SeraFim
$client = new SoapClient("some.wsdl", array('login' => "some_name", 'password' => "some_password"));
#15 by egor2fsys
База без авторизации. А вообще или прописываем в vrd файл или как показали в .
#16 by Fragster
так - правда, али нет?
#17 by egor2fsys
Получается да. Но как в пхп создать этот объект ?
#18 by Fragster
#19 by Fragster
wsdl полностью б
#20 by egor2fsys
а можно как то в асечку или на почту ?
#21 by egor2fsys
Спасибо ! То, что нужно !
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С