Контекст в выборках
Last updated
Last updated
Контекст жизненно необходим выборке. Ведь именно контекст наполняет выборку данными.
Если мы явно не указываем (с помощью sql скрипта) какие именно данные мы хотим увидеть в выборке, то Контекст сам себе сгенерирует команду вида "select * from <наша сущность>" и будет ее использовать. Затем в выборке мы выберем какие именно поля отобразить и настроим другие UI-свойства.
Команда "select всё from" годится разве что в простых справочниках. Если нужно что-то сложнее, лучше самому прописать именно такой скрипт отбора, который требуется. При этом, в целях оптимизации, не следует отбирать не нужные поля, а также учитывайте индексы и план запроса. Тем более, если требуется присоединить несколько таблиц через join или вообще, скрипт любой другой сложности.
Чтобы прописать свой скрипт отбора списка, нужно добавить "Скрипт выборки".
И в свойствах прописать скрипт отбора.
Платформа накладывает только одно ограничение на скрипт отбора выборки. Во время выполнения такой скрипт будет оборачиваться в Обобщенное табличное выражение.
Это нужно для того чтобы при необходимости автоматически подключить пейджинг и фильтрацию с сортировкой по полям именно пользовательского представления, а не по столбцам сущности (что нам не очень интересно).
Если это довольно сложный скрипт, который невозможно выразить в виде одного select, то создайте табличную функцию.
Если вам необходимо использовать конструкции, которые запрещено применять в табличных функциях, тогда подготовительную часть скрипта следует вынести в "Скрипт обработки выборки", а конечный select оставить в "Скрипт выборки".
Во время выполнения эти две части соединятся, итоговый select корректно обернется в CTE.
Если и этого не достаточно, то следует воспользоваться асинхронной подготовкой данных для их последующего отбора.
Для этого, например с помощью Автоматических задач периодически запускайте по расписанию обработку и подготовку данных, а в выборке только показывайте результат.
В результирующем select-е необходимо обязательно отбирать первичный ключ сущности. Это второе и последнее требование к скриптам выборки.
Загруженные данные выборки можно закешировать на заданное количество минут. Кешировать целесообразно только справочники, которые не часто меняются. Кешировать например таблицу заказов, смысла нет. Кеш сбратывается или по истечению указанного количества минут или после перезахода пользователя в программу.