Ответ вслух Middle Виртуальные таблицы регистров спрашивают часто обновлено

Параметры виртуальных таблиц

Вопрос

Объясните, почему условия на измерения нужно писать в параметрах виртуальной таблицы, а не в ГДЕ.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Виртуальная таблица не хранится в базе, платформа строит её подзапросом к таблицам движений и итогов. Условие из параметров попадает внутрь этого подзапроса, и СУБД считает остатки только по нужным складам и товарам.

Что должно прозвучать в ответе

  • Виртуальная таблица строится подзапросом по движениям и итогам

  • Условие в параметрах попадает внутрь этого подзапроса, до агрегирования

  • Условие в ГДЕ фильтрует уже рассчитанный по всем данным результат

  • На ресурсы условие только в ГДЕ

  • Для ОстаткиИОбороты разница бывает не только в скорости

Что могут спросить следом

  • Можно ли в условии использовать реквизит измерения через точку?
  • Как передать список товаров в условие?

Разбор

Виртуальная таблица не хранится в базе, платформа строит её подзапросом к таблицам движений и итогов. Условие из параметров попадает внутрь этого подзапроса, и СУБД считает остатки только по нужным складам и товарам. Условие в ГДЕ накладывается снаружи, после того как посчитано всё. На маленькой базе разницы не видно, на рабочей это минуты против секунд. Условие на ресурс, например остаток меньше нуля, можно только в ГДЕ, потому что ресурс появляется после расчёта. Списки передаю через «Номенклатура В (&Товары)» или «В (ВЫБРАТЬ ... ИЗ ВТТовары)».

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.