Задать вопрос
manzadey
@manzadey
PHP, Laravel, SQL

В каком формате отправлять данные в веб-сервис 1С через PHP?

Имею следующий метод для отправки данные на сервер 1С.

BookAnAppointmentWithParams (EmployeeID[string], PatientSurname[string],
PatientName[string], PatientFatherName[string], Date[dateTime],
TimeBegin[dateTime], Comment[string], Phone[string], Email[string], Address[string],
Clinic[string], GUID[string], Params[Structure])


Пример запроса:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ru="ru.umc" xmlns:core="http://v8.1c.ru/8.1/data/core">
<soap:Header/>
<soap:Body>
<ru: BookAnAppointmentWithParams>
<ru:EmployeeID>ac30e139-3087-11dc-8594-005056c00008</ru:EmployeeID>
<ru:PatientSurname>Иванов</ru:PatientSurname>
<ru:PatientName>Иван</ru:PatientName>
<ru:PatientFatherName>Иванович</ru:PatientFatherName>
<ru:Date>2017-03-17T00:00:00</ru:Date>
<ru:TimeBegin>0001-01-01T13:10:00</ru:TimeBegin>
<ru:Comment>Комментарий</ru:Comment>
<ru:Phone>89876543210</ru:Phone>
<ru:Email>bit@1cbit.ru</ru:Email>
<ru:Address>Ленина 1</ru:Address>
<ru:Clinic>f679444a-22b7-11df-8618-002618dcef2c</ru:Clinic>
<ru:GUID>9cc6b9fc-0b04-11e7-b13c-00e051000230</ru:GUID>
<ru:Params>
<core:Property name="Birthday">
<core:Value>1980-09-14T00:00:00</core:Value>
</core:Property>
<core:Property name="Duration">
<core:Value>0001-01-01T01:30:00</core:Value>
</core:Property>
</ru:Params>
</ru: BookAnAppointmentWithParams>
</soap:Body>
</soap:Envelope>


Посылаю данные в таком формате:
$this->client->connect->BookAnAppointmentWithParams(
            compact(
                'EmployeeID',
                'PatientSurname',
                'PatientName',
                'PatientFatherName',
                'Date',
                'TimeBegin',
                'Comment',
                'Phone',
                'Email',
                'Address',
                'Clinic',
                'GUID',
                'Params'
            ))->return


Собственно в compact находятся переменные с данными. Возникает проблема с передачей переменной Params.

Передаю её в таком виде:
$Params = compact('Birthday');

Но в 1С информация не поступает.

Вопрос следующий:
Правильно ли я отправляю параметр Params?
Если нет, то как будет правильно?
  • Вопрос задан
  • 429 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
Fragster
@Fragster
помогло? отметь решением!
<ru:Params>
<core:Property name="Birthday">
<core:Value>1980-09-14T00:00:00</core:Value>
</core:Property>
<core:Property name="Duration">
<core:Value>0001-01-01T01:30:00</core:Value>
</core:Property>
</ru:Params>

как бы намекает, что на входе в части params ожидается что-то типа
[
["property"=>["name"=>"Birthday"], "value"=>"1980-09-14T00:00:00"],
["property"=>["name"=>"Duration"], "value"=>"0001-01-01T01:30:00"],
]

а compact надо выкинуть, он такого никогда не вернет.

Также нет описания, что же на стороне 1с используется в качестве soap клиента. Встроенный объект SoapClient или что-то другое.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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