Правила формирования условий отбора
страницаПравила формирования условий отбора
При получении данных можно отфильтровать их, если это требуется. Для этого предназначен специальный язык, позволяющий описывать условия, которым должны соответствовать данные, которые возвращает стандартный интерфейс OData. Описание отбора начинается с ключевого слова $filter, после которого следует собственно условие. Поддерживаются следующие операции (табл. 1.2, 1.3).
Таблица 1.2. Логические операции, используемые для фильтрации данных
| Описание | Имя | Пример |
|---|---|---|
| Равно | eq | /Catalog_Города?$filter=Description eq 'Главный' |
| Не равно | ne | /Catalog_Города?$filter=Description ne 'Пермь' |
| Больше | gt | /Catalog_Товары?$filter=Цена gt 10 |
| Больше или равно | ge | /Catalog_Товары?$filter=Цена ge 10 |
| Меньше | lt | /Catalog_Товары?$filter=Цена lt 10 |
| Меньше или равно | le | /Catalog_Товары?$filter=Цена le 10 |
| Логическое «Или» | or | /Catalog_Товары?$filter=Цена lt 10 or Цена gt 100 |
| Логическое «И» | and | /Catalog_Товары?$filter=Цена gt 10 and Цена lt 100 |
| Отрицание | not | /Catalog_Товары?$filter=not (Цена eq 10) |
Таблица 1.3. Арифметические операции, используемые для фильтрации данных
| Описание | Имя | Пример |
|---|---|---|
| Сложение | add | /Catalog_Товары?$filter=Цена add 5 gt 10 |
| Вычитание | sub | /Catalog_Товары?$filter=Цена sub 5 gt 10 |
| Умножение | mul | /Catalog_Товары?$filter=Цена mul 5 gt 1000 |
| Деление | div | /Catalog_Товары?$filter=Цена div 4 gt 2 |
Например, используя следующее условие, можно получить товары из справочника Товары с именем Молоко и ценой менее 2500: *http://*localhost/odata/standard.odata/Catalog_Товары?$filter=Имя eq 'Молоко' and Цена lt 2500.
Для группировки условий и указания приоритета операций их можно заключить в скобки. Например: *http://*localhost/odata/standard.odata/Catalog_Товары?$filter=(Цена add 5) gt 10.
При формировании условий запроса или формировании реквизита, по которому выполняется упорядочивание, могут применяться функции для работы со строками (substring (), starts**with(), ends**with() и др.), с датами (year(), dateadd(), dayofyear() и др.) и некоторые другие.
Примеры использования условий отбора получаемых данных будут рассмотрены в разделах «Отобрать записи справочника по условию».
Подробнее
Правила формирования условий отбора для получения данных через REST-интерфейс более подробно описаны в документации «1С:Предприятия» в разделе «Глава 17. Механизмы интернет-сервисов – HTTP-сервисы – Стандартный интерфейс ODATA – Правила формирования условия отбора».