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

При організації вибірок в реальних задачах в переважній більшості випадків організовується відбір даних відповідно до деякими критеріями.

У разі, коли вибірка робиться з реальної таблиці, ніяких складнощів не виникає. Дані обробляються абсолютно тривіально:

У тому випадку, коли джерелом в запиті виступає віртуальна таблиця, ситуація стає трохи складніше.

Мова запитів дозволяє накласти умову на вибірку з віртуальних таблиць двома способами: в реченні ГДЕ і за допомогою параметрів віртуальних таблиць. Обидва способи приведуть до одного результату (за винятком деяких специфічних випадків), але, тим не менш, вони далеко не еквіваленти.

Ми вже знаємо, що віртуальні таблиці тому і називаються віртуальними, що в базі їх насправді немає. Формуються вони тільки в той момент, коли до них звертається запит. Незважаючи на це, нам (тобто, тим, хто складає запит) зручно розглядати віртуальні таблиці саме як реально існуючі. Що ж станеться в системі 1С Підприємство 8, коли складений нами запит все-таки звернеться до віртуальної таблиці?

На першому кроці, система побудує віртуальну таблицю. На другому кроці з отриманої таблиці будуть обрані записи, що задовольняють умові, заданому в пропозиції ДЕ:

Добре видно, що в підсумкову вибірку потраплять не всі записи з віртуальної таблиці (а, отже, і з бази даних), а тільки ті, які задовольняють заданій умові. А решта записи просто будуть виключені з результату.

Таким чином, система виконає не просто марну, а подвійну марну роботу! Спочатку будуть витрачені ресурси на побудову віртуальної таблиці на основі зайвих даних (на малюнку вони позначені як «області даних А і Б»), а потім ще буде проведена робота по фільтрації цих даних з остаточного результату.

Чи не можна відразу, на етапі побудови віртуальної таблиці, відмовитися від використання непотрібних даних? Виявляється, можна. Саме для цього і призначені параметри віртуальних таблиць:

Параметрізіруя віртуальну таблицю, ми відразу обмежуємо обсяг даних, який буде оброблятися запитом.

У чому полягає відмінність значень параметра віртуальної таблиці "МетодДополненія"?
Коли МетодДополненія встановлений в "руху", то будуть видані тільки ті періоди в яких були руху. Коли встановлено "ДвіженіяІГраніциПеріода", тоді до вищевказаних рухам додадуться 2 записи: руху на початок і кінець заданого в параметрах ВТ періоду. Поле "Реєстратор" при цьому для цих 2-х записів буде порожнім.

Інші відповіді на питання