Ключові слова: таблична частина, запит
Як то мені довелося правити звіт, написаний не мною. Там видався список всіх співробітників у яких є діти, що народилися після зазначеного року.
Ну і мене попросили переробити, щоб в список потрапляли не тільки ті співробітники, у яких є діти потрібного віку, але і співробітники без дітей і галочкою відзначати таких бездітних співробітників.
Вихідний запит був таким:
Можна було прибрати умова де, тоді б в результат потрапили всі табличні частини, навіть не заповнені. Але тоді б втрачалося зручність використання відбору та швидкість звіту б набагато зменшилася. Мені б довелося програмно перебирати таблицю значень Діти і перевіряти рік народження.
В результаті я змінив умови на протилежне і домігся потрібного:
Для порожній табличній частині умова в дужках давало брехня, НЕ перетворювало його в істину. Всі необхідні дані потрапляли.
Насправді запит стосувався не дітей, а співробітників, які пройшли навчання (вивчені предмети зберігалися в табличній частині). Потрібно було показати список усіх співробітників і відзначити в цьому списку предмети, які були вивчені за вказаний період.
Йдемо далі
Але найкраще і надійніше використовувати інший підхід. Якщо вже вам хочеться таблиць значень, потрібно написати цей запит так:
Тобто з'єднати довідник співробітників з самим собою.
При цьому в полі Діти будуть вже не ТабліцаЗначеній, а РезультатЗапроса (перетвориться до ТЗ методом вивантажити). Але зате в тих таблицях, де немає даних, будуть порожні таблиці значень.