Odata заполнение табличной части #790987


#0 by rubetek
1С 8.3 редакция 3.0 Делаю интеграцию сайта с 1С через Odata в формате json. Контрагентов создал успешно. При создании акта возникла проблема: акт создал, далее пытаюсь заполнить табличную часть. Отправляю запрос на добавление одной строки, а мне в ответ: { "value": "Cоздание строк табличной части напрямую не поддерживается" } } } Через odata в json нельзя добавить строки?
#1 by PR
Какое из написанных слов тебе непонятно?
#2 by rubetek
Непонятно как тогда добавить строки
#3 by Cyberhawk
Покажи формирование запроса
#4 by rubetek
/odata/standard.odata/Document_ПоступлениеТоваровУслуг?$format=application/jsonArray /odata/standard.odata/Document_ПоступлениеТоваровУслуг_Услуги?$format=application/jsonArray Видимо так нельзя потому что 1с-у надо что то пересчитать при добавлении строк... ((
#5 by Cyberhawk
Используй ПАТЧ-запрос, передавая всю ТЧ целиком
#6 by rubetek
1. Делаю POST запрос на создание акта. 2. Методом PATCH по guid редактирую его с такими данными /odata/standard.odata/Document_ПоступлениеТоваровУслуг(guid'01d22eff-f1d2-11e6-8da2-50e549a0019a')?$format=application/json Array (     [Услуги] => Array                 )                 )         ) ) Получаю ошибку: resulted in a `500 Internal server error` response Я правильно обновляю акт?
#7 by rubetek
"lang": "ru", "value": "Произошла внутренняя ошибка OData сервиса. Дополнительные сведения можно найти в технологическом журнале." } } } К сожалению, нет возможности этот журнал посмотреть, мне кажется, что я неправильно json запрос формирую.
#8 by rubetek
Есть где нибудь документация? какие поля обязательные, какие нет, думаю что дело в полях
#9 by Cyberhawk
"кажется, что я неправильно json запрос формирую" "Есть где нибудь документация?" ИТС тебе в помощь:
#10 by rubetek
Cyberhawk, спасибо за ссылку, доступа нет у меня туда, распечатали всю 17 главу мне ). А проблема была вот в чем. В каждой услуге надо было поставить поле LineNumber. Как его поставил, 500 ошибка пропала. Потом появилась следующая ошибка: данные шапки менялись, а услуги не добавлялись. Проблема решилась так: Добавил поле в шапку ВидОперации = "Услуги".
#11 by Cyberhawk
"доступа нет у меня туда" // Там есть демо-доступ
#12 by rubetek
Кстати, если правильно сформировать json сразу, то POST-ом все прекрасно записывается =)
#13 by Cyberhawk
Код-то выкладывай потомкам не память
#14 by Cyberhawk
*на память
#15 by rubetek
Код на php, написан свой клиент небольшой, ну все элементарно: генерация url, да отправка на него json-а. В качестве http клиента используется Guzzle. Основные методы: /** * @param string $method1C Метод в 1С, например "Document_ПоступлениеТоваровУслуг" * @param array  $data     Массив данных который надо отправить в 1C * @param string $method   HTTP метод * @param null   $guid     ID сущности в 1C * @param array  $params   Фильтры */ public function sendData($method1C, $data, $method = 'GET', $guid = null, array $params = [])         throw new RequestException($ex->getResponse->getBody->getContents);     } */ private function getUrl($method, array $params = []) } Минимальные данные для создания акта с услугами в табличной части /odata/standard.odata/Document_ПоступлениеТоваровУслуг?$format=application/json Array [                 ]                 ]         ]     [ВидОперации] => Услуги ]
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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