Показать сообщение отдельно
Старый 18.04.2012, 08:17   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,443 / 1781 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
В общем случае Query может содержать несколько последовательных запросов. Не связанных друг с другом и не подчинённых друг к другу. Т.е. просто независимые друг от друга запросы разной структуры, которые queryRun обрабатывает последовательно.

Даже если брать за основу не весь Query, а QueryBuildDataSource, то и тут есть нюансы. Например, я себе не представляю, как можно реализовать одним SQL запросом QueryBuildDataSource, содержащий QueryFetchMode::One2Many.

Понятно что все эти "экзотические" возможности недоступны для пользователя через функциональность расширенного фильтра. Но ведь для системы нет никакой разницы - Query полученный от пользователя и Query созданный программно это одна и таже сущность. Поэтому я сомневаюсь в том что в системе есть какой-то стандартный инструмент, который сможет превратить в чесный SQL-текст любой Query/QueryBuildDataSource. Всё-таки наличие у аксаптовского Query таких "экзотических" возможностей, делает его гораздо более сложным объектом, нежели просто SQL-запрос.

Если говорить даже просто о преобразовании значения range, в некоторое логическое условие, то и тут не вижу никакаих надежд на наличие стандартных инструментов . Стандартный метод Global::inRange() реализуется через запрос к временной таблице. Если бы существовал транслятор, доступный из X++, стали бы они так делать?

Хотя... всё может быть Также не исключаю возможность существования самописных трансляторов. Но они ли вам нужны?
За это сообщение автора поблагодарили: db (2).