|
SOAP PHP 1c 8.2 | ☑ | ||
---|---|---|---|---|
0
koupny
29.07.11
✎
15:45
|
Здравствуйте! Необходимо осуществить подключение 1С 8.2 к сайту через SOAP используя веб-сервис.
Проблема возникает, при передачи в веб-сервис значения параметра. Ошибка: "Недостаточно параметров операции по причине: Недостаточно параметров операции." Когда параметров нету, все отлично работает. soapParameters = Array('login' => "login", 'password' => "psw") ; $client = new SoapClient("http://XX.XX.XX.XX/ws/ws1.1cws?wsdl", $soapParameters); $result = $client->helloWorld(); echo $result->return; А как правильно передать значения параметрам веб-сервиса? Заранее спасибо! |
|||
1
Просто Лёха
29.07.11
✎
15:48
|
У меня вот так работает:
$client = new SoapClient("http://127.0.0.1/wsserv/ws/service.1cws?wsdl" , array('login' => "Login", 'password' => "mypassword", 'exceptions' => 1)); $params["Сотрудник"] = $cmluids; $params["ДатаНачала"] = $start_date; $params["ДатаОкончания"] = $end_date; $result = $client-> Returninfo($params); |
|||
2
Просто Лёха
29.07.11
✎
15:52
|
(1) Returninfo - у меня так процедура экспортная веб сервиса называется
|
|||
3
koupny
29.07.11
✎
15:59
|
хм..странно, у меня такая ошибка:
"Fatal error: Uncaught SoapFault exception: [soap:Client] Неизвестная ошибка. Недостаточно параметров операции по причине: Недостаточно параметров операции " Вот код мой: $client = new SoapClient("http://127.0.0.1/wsgara/ws/ws1.1cws?wsdl", array('login' => "mylogin", 'password' => "mypsw",'exceptions' => 1)); $params["newparam"] = "1"; $result = $client-> helloWorld($params); Может у меня проблема именно в конфигурации? [URL=http://www.radikal.ru][IMG]http://s40.radikal.ru/i087/1107/be/19b5d75cabfe.jpg[/IMG][/URL] |
|||
4
koupny
29.07.11
✎
16:01
|
||||
5
Просто Лёха
29.07.11
✎
16:04
|
(3) Если без параметров работает, а с параметром такая вещь - значит проблема к конфигурации
|
|||
6
koupny
29.07.11
✎
16:05
|
да( интересно в чем же именно(
|
|||
7
Просто Лёха
29.07.11
✎
16:05
|
свойства newparam - стоит галочка возможно пустое значение? И какой тип возвращаемого значения задан?
|
|||
8
koupny
29.07.11
✎
16:06
|
галочка не стоит. а тип - string
|
|||
9
Fragster
гуру
29.07.11
✎
16:06
|
||||
10
Просто Лёха
29.07.11
✎
16:06
|
Попробуй поставить и ещё раз проверить
|
|||
11
koupny
29.07.11
✎
16:09
|
галку поставил - такая же ошибка(
|
|||
12
koupny
29.07.11
✎
16:10
|
Самое интересное что, если параметра нету. Работает все отлично.
|
|||
13
Просто Лёха
29.07.11
✎
16:12
|
Туплю, у тебя параметра то нет (4)
|
|||
14
Просто Лёха
29.07.11
✎
16:14
|
(13) Т.е. не так поставь галочки и и свойству helloword и параметру свойства и newparam, параметра псомотри так же типы значения, направления параметра
|
|||
15
koupny
29.07.11
✎
16:19
|
у helloWorld - галка "Возможно пусто значение" - стоит. Тип возвращаемого - string. Аналогично и у параметра newparam + направление передачи - "входной".
|
|||
16
Просто Лёха
29.07.11
✎
16:25
|
скинь то что отображается в браузере по ссылке
http://127.0.0.1/wsgara/ws/ws1.1cws?wsdl |
|||
17
koupny
29.07.11
✎
16:36
|
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap12bind="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="helloWorld" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsd1="helloWorld" name="webService" targetNamespace="helloWorld">
<types> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xs1="helloWorld" targetNamespace="helloWorld" elementFormDefault="qualified"> <xs:element name="helloWorld"> <xs:complexType> <xs:sequence> <xs:element name="newparam" type="xs:string" nillable="true"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="helloWorldResponse"> <xs:complexType> <xs:sequence> <xs:element name="return" type="xs:string" nillable="true"/> <xs:element name="newparam" type="xs:string" nillable="true"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> </types> <message name="helloWorldRequestMessage"> <part name="parameters" element="tns:helloWorld"/> </message> <message name="helloWorldResponseMessage"> <part name="parameters" element="tns:helloWorldResponse"/> </message> <portType name="webServicePortType"> <operation name="helloWorld"> <input message="tns:helloWorldRequestMessage"/> <output message="tns:helloWorldResponseMessage"/> </operation> </portType> <binding name="webServiceSoapBinding" type="tns:webServicePortType"> <soapbind:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="helloWorld"> <soapbind:operation style="document"/> <input> <soapbind:body use="literal"/> </input> <output> <soapbind:body use="literal"/> </output> </operation> </binding> <binding name="webServiceSoap12Binding" type="tns:webServicePortType"> <soap12bind:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="helloWorld"> <soap12bind:operation style="document"/> <input> <soap12bind:body use="literal"/> </input> <output> <soap12bind:body use="literal"/> </output> </operation> </binding> <service name="webService"> <port name="webServiceSoap" binding="tns:webServiceSoapBinding"> <documentation> <wsi:Claim xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" conformsTo="http://ws-i.org/profiles/basic/1.1"/> </documentation> <soapbind:address location="http://127.0.0.1/wsgara/ws/ws1.1cws"/> </port> <port name="webServiceSoap12" binding="tns:webServiceSoap12Binding"> <soap12bind:address location="http://127.0.0.1/wsgara/ws/ws1.1cws"/> </port> </service> </definitions> |
|||
18
Просто Лёха
29.07.11
✎
17:00
|
(17) сейчас у себя попробую развернуть
|
|||
19
koupny
29.07.11
✎
17:15
|
попробуйте.. вдруг получиться, а то я не знаю уже в чем может быть проблема(
|
|||
20
Просто Лёха
29.07.11
✎
19:24
|
(19) Ну как бы все отлично, сейчас скину скрин
|
|||
21
Просто Лёха
29.07.11
✎
19:37
|
Код файла:
<?php // Отключаем кэширование для SOAP. Если этого не сделать, // функции веб-сервисов будут работать некорректно. ini_set("soap.wsdl_cache_enabled", "0"); //Работа с исследованиями $client = new SoapClient("http://192.168.1.10/MyApp/ws/preved.1cws?wsdl" , array('login' => "admin", 'password' => "admin", 'exceptions' => 1)); $params["param"] = "1234567890"; $result = $client->getinfo($params); Var_dump($result); ?> |
|||
22
Просто Лёха
29.07.11
✎
19:43
|
Версия 1С:Предприятие 8.2 (8.2.13.219)
База файловая, Apache 2.2, запускал с другого компа, т.к. на этом не стоит PHP, PHP Version 5.3.2-1 Поддржека Soap http://screencast.com/t/7EyaLj2iL Обращение в веб сервису http://screencast.com/t/2lLqfY8jx |
|||
23
koupny
29.07.11
✎
22:52
|
Алексей! Вы молодец, все получилось, проблема была в кэширование wsdl. Как только это сделал, все заработало!
Спасибо большое за потраченное время! |
|||
24
Просто Лёха
30.07.11
✎
02:18
|
Да не за что
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |