Skip to main content
$apply считает итоги на сервере: клиент получает готовые группы, а не миллион строк. Это расширение относительно standard.odata, который $apply не поддерживает.

Шаги

Шаги соединяются через /, в цепочке — до 10 шагов.
Группировка по навигации возвращает вложенный объект, как в примере выше.

Что работает поверх результата

  • К результату применяются $filter, $orderby, $select, $top, $skip и $count.
  • Цепочки, которые сохраняют ключ сущности (filter, compute, topcount, bottomcount, identity), остаются сущностями набора. Для них доступны $expand и $select, в том числе табличных частей и RecordSet.
  • $apply применяется и к результату виртуальной таблицы регистра (см. Регистры).

Как выполняется

Вся цепочка выполняется одним пакетом запросов 1С. Каждый шаг, который меняет состав колонок, ложится во временную таблицу.

Постраничное чтение

Результат продолжается по $skiptoken. У groupby метка хранит значения полей группировки (они уникальны), поэтому даже десятки тысяч групп проходятся по @odata.nextLink до конца. Если полей группировки так много или они такие длинные, что условие продолжения не помещается в пределы выражения или ссылка стала бы длиннее 8000 символов, результат продолжается по $skip, без предела 10 000. $skiptoken к такому результату — 400 с причиной.

Не поддерживается

  • Шаги concat, expand, search, nest, join, rollup, $all, toppercent, topsum, bottompercent, bottomsum — ответ 501.
  • $expand поверх groupby и aggregate — 501.
  • any и all по табличной части после шагов — 501.
  • $apply внутри $expand — 501.
  • $compute вне $apply — 501.
Число шагов $apply может ограничить профиль доступа — см. Профили.