Запити 1с 8

При використанні в запитах 1С 8 віртуальних таблиць з умовами і одночасно секції ДЕ варто бути гранично уважним, адже результат може виявитися несподіваним.

Нам часто доводиться використовувати віртуальні таблиці (СрезПервих, СрезПоследніх, Залишки, ОстаткіІОбороти і т.д.) в запитах - це істотно скорочує текст, а завдання найбільшого кількість параметрів віртуальної таблиці є моментом прямий оптимізації. Але важливо завжди пам'ятати, що віртуальні таблиці не існує в базі, це механізм надається нам платформою, вся робота якого зводиться до попередньої оптимальної вибірці записів відфільтрованих за конкретними параметрами з об'ємних таблиць регістрів накопичення / бухгалтерії / відомостей. Використовуючи секцію ДЕ в запиті варто розуміти, що фільтрувати ми будемо дані не з реальної таблиці, а з уже відфільтрованої. В принципі все це очевидно і, як правило, всі фільтри, що стосуються віртуальної таблиці, можна і потрібно перенести в її параметри. Але якщо ви хочете накласти умову на ресурс регістра накопичення або бухгалтерії, то в параметрах вам це не вдасться і доведеться використовувати секцію ДЕ. У такій ситуації будьте уважні і пам'ятайте, що накладаєте умова не на реальну таблицю.

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

Віртуальні таблиці регістрів відомостей і секція ДЕ

Припустимо, у нас є періодичний регістр відомостей Ціни номенклатури. представлений таблицею:

Запити 1с 8

Завдання буде успішно вирішена, але якщо фільтр по ціні перенести в секцію ДЕ:

Читайте також