Книга: Технологии интеграции "1С:Предприятия 8.3""
Назад: Изменение данных табличной части
Дальше: Web-сервисы

Типичные ошибки при получении данных

В этом разделе мы рассмотрим типичные ошибки, возникающие при обращении к REST-интерфейсу прикладного решения. Ошибки могут возникать как на стороне клиентского приложения, так и на стороне сервера. В случае возникновения ошибки на клиенте сервер пытается уточнить причину ошибки и может передать клиентскому приложению дополнительный внутренний код ошибки и информационное сообщение в теле ответа.

В первую очередь нужно понять, работает ли вообще REST-интерфейс с интересующей нас информационной базой. Для этого достаточно в браузере просто набрать URL: <путь публикации базы>/odata/standard.odata. Должен вернуться следующий ответ сервера (листинг 1.122).

Листинг 1.122. Ответ сервера

<service xmlns="http://www.w3.org/2007/app" xmlns:atom="http://www.w3.org/2005/Atom" xml:base="http://localhost/EXT/odata/standard.odata">

<workspace>

<atom:title>Default</atom:title>

</workspace>

</service>

Этот ответ говорит о том, что интерфейс работает, но для интерфейса OData недоступны никакие объекты конфигурации.

Ниже мы рассмотрим несколько типичных ошибок, которые возникают в случае неправильного написания URL.

Например, при указании адреса ресурса вы ошиблись в имени объекта конфигурации (листинг 1.123).

Листинг 1.123. URL запроса

localhost/REST/odata/standard.odata/CatalogДолжности?$format=json

В ответе сервера будет возвращен код ошибки – 8 и описание ошибки – «Тип сущности не найден» (листинг 1.124).

Листинг 1.124. Ответ сервера

{

"odata.error": {

"code": "8",

"message": {

"lang": "ru",

"value": "\"CatalogПоставщики\" entity is not found"

}

}

}

Если при указании адреса ресурса вы ошиблись в значении ссылки на конкретный объект конфигурации (листинг 1.125).

Листинг 1.125. URL запроса

localhost/REST/odata/standard.odata/Catalog_Должности(guid'88d54406-36a1-11e9-8bb2-642737df2049')?$format=json&

В ответе сервера будет возвращен код ошибки – 9 и описание ошибки – «Экземпляр сущности не найден» (листинг 1.126).

Листинг 1.126. Ответ сервера

{

"odata.error": {

"code": "9",

"message": {

"lang": "ru",

"value": "Entity instance not found"

}

}

}

Если при указании выражения фильтра вы ошиблись, например, при написании функции отбора (листинг 1.127).

Листинг 1.127. URL запроса

localhost/REST/odata/standard.odata/Catalog_Поставщики?$format=json&$filter=startwith(Description, 'ООО') eq true

В ответе сервера будет возвращен код ошибки – 14 и описание ошибки – «Ошибка разбора опций запроса» (листинг 1.128).

Листинг 1.128. Ответ сервера

{

"odata.error": {

"code": "14",

"message": {

"lang": "ru",

"value": "Error parsing $filter query option"

}

}

}

Если при указании адреса ресурса вы ошиблись, например, в имени параметра (листинг 1.129).

Листинг 1.129. URL запроса

localhost/REST/odata/standard.odata/Catalog_Сотрудники?$format=json&$select=Description, ДатаРождения, Должность&$expan=Должность

В ответе сервера будет возвращен код ошибки – 0 и описание ошибки – «Параметр не поддерживается» (листинг 1.130).

Листинг 1.130. Ответ сервера

{

"odata.error": {

"code": "0",

"message": {

"lang": "ru",

"value": "The $expan parameter is not supported"

}

}

}

Если при указании адреса ресурса вы ошиблись, например, в имени функции (листинг 1.131).

Листинг 1.131. URL запроса

localhost/REST/odata/standard.odata/InformationRegister_ЦеныТоваров/Slice_Last()

В ответе сервера будет возвращен код ошибки – 6 и описание ошибки – «Метод не найден» (листинг 1.132).

Листинг 1.132. Ответ сервера

{

"odata.error": {

"code": "6",

"message": {

"lang": "ru",

"value": "Метод не найден"

}

}

}

Подробнее

Типичные ошибки, возникающие при получении данных через REST-интерфейс, более подробно описаны в документации «1С:Предприятия» в разделе «».

Назад: Изменение данных табличной части
Дальше: Web-сервисы