Параметри віртуальних таблиць
При організації вибірок в реальних задачах в переважній більшості випадків організовується відбір даних відповідно до деякими критеріями.
У разі, коли вибірка робиться з реальної таблиці, ніяких складнощів не виникає. Дані обробляються абсолютно тривіально:
У тому випадку, коли джерелом в запиті виступає віртуальна таблиця, ситуація стає трохи складніше.
Мова запитів дозволяє накласти умову на вибірку з віртуальних таблиць двома способами: в реченні ГДЕ і за допомогою параметрів віртуальних таблиць. Обидва способи приведуть до одного результату (за винятком деяких специфічних випадків), але, тим не менш, вони далеко не еквіваленти.
Ми вже знаємо, що віртуальні таблиці тому і називаються віртуальними, що в базі їх насправді немає. Формуються вони тільки в той момент, коли до них звертається запит. Незважаючи на це, нам (тобто, тим, хто складає запит) зручно розглядати віртуальні таблиці саме як реально існуючі. Що ж станеться в системі 1С Підприємство 8, коли складений нами запит все-таки звернеться до віртуальної таблиці?
На першому кроці, система побудує віртуальну таблицю. На другому кроці з отриманої таблиці будуть обрані записи, що задовольняють умові, заданому в пропозиції ДЕ:
Добре видно, що в підсумкову вибірку потраплять не всі записи з віртуальної таблиці (а, отже, і з бази даних), а тільки ті, які задовольняють заданій умові. А решта записи просто будуть виключені з результату.
Таким чином, система виконає не просто марну, а подвійну марну роботу! Спочатку будуть витрачені ресурси на побудову віртуальної таблиці на основі зайвих даних (на малюнку вони позначені як «області даних А і Б»), а потім ще буде проведена робота по фільтрації цих даних з остаточного результату.
Чи не можна відразу, на етапі побудови віртуальної таблиці, відмовитися від використання непотрібних даних? Виявляється, можна. Саме для цього і призначені параметри віртуальних таблиць:
Параметрізіруя віртуальну таблицю, ми відразу обмежуємо обсяг даних, який буде оброблятися запитом.
У чому полягає відмінність значень параметра віртуальної таблиці "МетодДополненія"?
Коли МетодДополненія встановлений в "руху", то будуть видані тільки ті періоди в яких були руху. Коли встановлено "ДвіженіяІГраніциПеріода", тоді до вищевказаних рухам додадуться 2 записи: руху на початок і кінець заданого в параметрах ВТ періоду. Поле "Реєстратор" при цьому для цих 2-х записів буде порожнім.
Інші відповіді на питання