К сообщению mazzy про запрос следует добавить то, что запрос является не только отдельным объектом, но и в формах, отчетах и т.п. используется именно запрос. С некоторыми тонкостями все средства обработки из языка запросов в форме, отчетах, наследниках RunBase (отдаленный аналог обработки в 1С) одинаковы. Кроме настройки этих запросов из кода можно полностью заменить запрос у той же формы в момент выполнения.
Справедливости ради, стоит сказать, что такие программные манипуляции усложняют восприятие. То есть, чтобы понять почему форма (отчет) ведут себя тем или иным образом, а не так, как ожидаешь, приходится лезть в код, а не смотреть дизайн.
Но одно из самых замечательных свойств этой унификации запросов то, что пользователь может задавать в форме, в отчете, в обработке дополнительные связи с другими таблицами способом, который разработчик и не предполагал. Правда, это добавление не позволяет вывести какие-то дополнительные данные, но в качестве фильтрации вполне хорошо себя зарекомендовало. Такие настройки можно сохранять и использовать в дальнейшем.
Например, в списке клиентов пользователь таким способом может отфильтровать клиентов каким-нибудь особым способом, под который писать отдельные отчеты или запросы не требуется. Скажем ,пользователь может задать что-то подобное: "Отобразить тех клиентов, у которых у директора день рождения на следующей недели и которые купили у нас в прошлом месяце чего-то на сумму больше миллиона за раз, но долги которых не являются просроченными".
|