@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


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


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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽