> ## Documentation Index
> Fetch the complete documentation index at: https://docs.1unic.com/odatav4/llms.txt
> Use this file to discover all available pages before exploring further.

# OData4 и standard.odata

> Чем OData4 отличается от стандартного интерфейса OData 1С и что в них совпадает

OData4 не заменяет `standard.odata`, а работает рядом с ним: стандартный интерфейс остаётся по адресу
`/odata/standard.odata/`, OData4 — по адресу `/hs/odata/v4/`. Клиентов можно переносить по одному.

## Возможности

| | standard.odata | OData4 |
| - | - | - |
| Версия протокола | OData v3 с особенностями 1С | OData v4, частично 4.01 |
| `$metadata` | CSDL XML | CSDL XML 4.0 и CSDL JSON |
| Power BI и Excel «Из канала OData» | через совместимость с v3 | штатно |
| `$filter`, `$select`, `$expand`, `$orderby`, `$top`, `$skip`, `$count` | да | да, плюс синтаксис v3 для совместимости |
| `$apply`: `groupby`, `aggregate`, `filter`, `compute`, `topcount` | нет | да |
| Виртуальные таблицы регистров (`Balance`, `Turnovers`, `SliceLast`…) | да | да, плюс параметр `Periodicity` |
| `$batch` | нет (`501`) | `multipart/mixed` и JSON batch, наборы изменений — одна транзакция |
| Запись объектов и регистров | да | да, с проверкой заполнения и ответами об ошибках в формате OData |
| Проведение и отмена проведения | да | да, `Post` и `Unpost` объявлены в `$metadata` как действия |
| ETag, `If-Match`, `If-None-Match` | нет | да |
| Безопасный повтор запроса записи | нет | `Repeatability-Request-ID`, `Idempotency-Key` |
| Удаление | физическое | пометка удаления; физическое — по настройке и праву профиля |
| Аутентификация | Basic | Basic и токены (заголовок, путь, параметр) |
| Профили доступа: права, отборы строк, лимиты, частота | нет | да |
| Состав публикации | состав стандартного интерфейса | тот же по умолчанию; объекты, поля и табличные части выбираются в форме |
| CORS для браузерных клиентов | нет | да |
| Журнал запросов | нет | да, с уровнями и сроком хранения |
| Большие коллекции | одним ответом | страницами по 1000 строк или одним ответом — по настройке |
| Кэш `$metadata` | в сеансе | между сеансами, с проверкой изменений конфигурации |

## Что совпадает

OData4 повторяет имена стандартного интерфейса, чтобы запросы переносились почти без правок:

* наборы — `Catalog_Номенклатура`, `Document_РеализацияТоваровУслуг`, `Document_РеализацияТоваровУслуг_Товары`,
  `InformationRegister_КурсыВалют`, `AccumulationRegister_ТоварыНаСкладах_RecordType`,
  `AccountingRegister_Хозрасчетный`, `ChartOfAccounts_Хозрасчетный`, `Constant_X` и т. д.;
* свойства — `Ref_Key`, `Description`, `Code`, `DeletionMark`, `Контрагент_Key`, `ExtDimension1_Type`, `LineNumber`;
* ключи — `Catalog_Номенклатура(guid'…')`, регистры — именованной формой
  `InformationRegister_КурсыВалют(Period=…,Валюта_Key=…)`;
* виртуальные таблицы и их параметры — `Condition`, `Dimensions`, `Period`, `StartPeriod`, `EndPeriod`;
* пространство имён `StandardODATA` в `$metadata`.

При переносе клиента обычно меняется только адрес сервиса: вместо `/odata/standard.odata/` указывается
`/hs/odata/v4/`.

<Note>
  Там, где `standard.odata` расходится со спецификацией OData, OData4 следует спецификации. Например,
  `$orderby` по ссылке упорядочивает по самой ссылке, а не по представлению, а `DELETE` ставит пометку удаления.
  Полный список — [Отличия от standard.odata](/odatav4/reference/differences).
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.