@ddelphknn

Передать параметр из PHP в веб-сервис 1С?

Есть веб-сервис в 1С, в нём есть метод, который должен принимать 2 параметра.
Пытаюсь вызвать метод в пхп, но что-то делаю не так с параметрами
Попытка №1
Код PHP:
$SoapClient1C = new SoapClient("http://test.1c/WEB/ws/webservice?wsdl");
$BeginDate = date_create('2000-01-01');
$EndDate = date_create('2014-12-12'); 
$List = $SoapClient1C->getDDSFact($BeginDate,$EndDate);

Выдает ошибку:
Fatal error: Uncaught SoapFault exception: [Client] SOAP-ERROR: Encoding: object has no 'BDate' property in C:\xampp\htdocs\site.dd\index.php:149 Stack trace: #0 C:\xampp\htdocs\site.dd\index.php(149): SoapClient->__call('getDDSFact', Array) #1 C:\xampp\htdocs\site.dd\index.php(149): SoapClient->getDDSFact(Object(DateTime), Object(DateTime)) #2 {main} thrown in C:\xampp\htdocs\site.dd\index.php on line 149

Попытка №2
Код PHP:
$SoapClient1C = new SoapClient("http://test.1c/WEB/ws/webservice?wsdl");
$BeginDate = date_create('2000-01-01');
$EndDate = date_create('2014-12-12'); 
$List = $SoapClient1C->getDDSFact(array("BDate" => $BeginDate, "EDate" => $EndDate));

Ошибка:
Fatal error: Uncaught SoapFault exception: [soap:Client] Неизвестная ошибка. Ошибка проверки данных XDTO: Значение: '' не соответствует простому типу: {http://www.w3.org/2001/XMLSchema}dateTime по причине: Ошибка проверки данных XDTO: Значение: '' не соответствует простому типу: {http://www.w3.org/2001/XMLSchema}dateTime in C:\xampp\htdocs\site.dd\index.php:149 Stack trace: #0 C:\xampp\htdocs\site.dd\index.php(149): SoapClient->__call('getDDSFact', Array) #1 C:\xampp\htdocs\site.dd\index.php(149): SoapClient->getDDSFact(Array) #2 {main} thrown in C:\xampp\htdocs\site.dd\index.php on line 149


Заранее благодарен за любую помощь.
  • Вопрос задан
  • 6472 просмотра
Решения вопроса 1
Вы передаете даты как объект DateTime, а метод, скорее всего, ожидает их увидеть в виде строки. Попробуйте такой вариант:
$SoapClient1C = new SoapClient("http://test.1c/WEB/ws/webservice?wsdl");
$List = $SoapClient1C->getDDSFact(array("BDate" => '2000-01-01', "EDate" => '2014-12-12'));


Если не сработает, то посмотрите в документации в каком формате этот метод принимает даты.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы