V8 хитрий прийом роботи з табличними частинами в запиті


Ключові слова: таблична частина, запит


Як то мені довелося правити звіт, написаний не мною. Там видався список всіх співробітників у яких є діти, що народилися після зазначеного року.

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

Вихідний запит був таким:


Можна було прибрати умова де, тоді б в результат потрапили всі табличні частини, навіть не заповнені. Але тоді б втрачалося зручність використання відбору та швидкість звіту б набагато зменшилася. Мені б довелося програмно перебирати таблицю значень Діти і перевіряти рік народження.

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

Для порожній табличній частині умова в дужках давало брехня, НЕ перетворювало його в істину. Всі необхідні дані потрапляли.

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

Йдемо далі


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

Тобто з'єднати довідник співробітників з самим собою.
При цьому в полі Діти будуть вже не ТабліцаЗначеній, а РезультатЗапроса (перетвориться до ТЗ методом вивантажити). Але зате в тих таблицях, де немає даних, будуть порожні таблиці значень.

V8 хитрий прийом роботи з табличними частинами в запиті

Схожі статті