Skip to main content

Записи регистров

Ключи и чтение по ключу описаны в разделе Адреса и наборы. Для выгрузки строк движений удобнее …_RecordType: к нему применимы $filter, $select, $orderby и постраничное чтение.

Виртуальные таблицы

Виртуальные таблицы объявлены в $metadata как связанные функции (Function IsBound="true") у коллекции регистра. Вызов принимается в двух формах: как у standard.odata и с пространством имён, как в OData 4.0.

Параметры

Параметры те же, что у standard.odata:
В Condition нельзя ставить ресурсы, счёт регистра бухгалтерии и колонки, которые функция не заполняет (Period, Recorder, LineNumber у оборотов) — 400. Order у RecordsWithExtDimensions проверяется, но не применяется, как и у standard.odata.

Группировка результата

Результат остатков и оборотов всегда сгруппирован.
  • Dimensions явно задаёт измерения группировки.
  • Без Dimensions и с $select результат группируется, как у standard.odata, по упомянутым свойствам: выбранным в $select, отобранным в $filter, а у коллекции — ещё по $orderby и раскрытым навигациям.
  • Без $select, с $select=* и с $apply группировка идёт по всем измерениям.
  • /$count и $count=true считают группы.
Этот запрос вернёт одну строку — общий остаток.

Periodicity

Необязательный параметр Turnovers и BalanceAndTurnovers регистров накопления и бухгалтерии. Это расширение интерфейса standard.odata. Значения (с учётом регистра): Recorder, Record, Second, Minute, Hour, Day, Week, TenDays, Month, Quarter, HalfYear, Year, Auto.
Периодичность заполняет колонку периода (MonthPeriod и т. п.), и она входит в ключ и группировку результата.
  • Recorder заполняет Period и Recorder.
  • Record дополнительно заполняет LineNumber.
  • Auto заполняет все колонки …Period, Recorder и LineNumber.
Колонки других периодичностей в запросе дают 400 «Свойство не заполняется в результате функции». Как и в 1С, начало первого периода не раньше StartPeriod.

Раскрытие и агрегирование поверх результата

  • $expand навигаций работает и поверх остатков и оборотов: результат сначала группируется, затем к нему присоединяются связанные объекты.
  • К результату виртуальной таблицы применяются $filter, $orderby, $top, $skip и $apply.

Регистры без ключевых полей

Такой регистр получает ключ SurrogateKey со значением 0, как в standard.odata. В $filter, $orderby и $apply он не участвует.

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

  • DrCrTurnovers;
  • виртуальные таблицы регистров расчёта.
Запись наборов движений описана в разделе Наборы движений.