|
Отбор компоновки данных |
☑ |
0
logman
16.01.22
✎
23:16
|
Всем добрый вечер.
Возникла задача, где в процессе нужно перетащить СКД-шные отборы в текст обычного запроса(не СКД). Попробовал много всякого, но ничего не получилось в нужном ключе, каждый раз все сводилось к огромному повторяющемуся сложному коду.
Подскажите, такая реализация в принципе возможна? Например, какие нибудь функции или процедуры в БСП. Или все таки это невыполнимая задача
Всем заранее спасибо за ответы!
|
|
1
logman
16.01.22
✎
23:26
|
Уточню, это обычные отборы компоновки данных, берутся не из самого СКД, а просто реализованы на кое-какой отдельной форме, с получением самих отборов проблем нет, но вот как их вставить в текст запроса, ума не приложу, учитывая то, что эти отборы можно группировать, и задавать абсолютно различные комбинации условий, которые очень тяжело воспроизвести в текст запроса.
|
|
2
МихаилМ
16.01.22
✎
23:29
|
|
|
3
acht
16.01.22
✎
23:47
|
(0) Возьми схему и настройки со своими отборами, вытащи готовый запрос из набора данных после компоновщика, типа:
Компоновщик = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = Компоновщик.Выполнить(Схема, Настройки);
НаборДанных = Макет.НаборыДанных[0];
ТекстЗапроса = НаборДанных.Запрос;
А потом окажется, что не все отборы/группировки можно оттранслировать в запрос напрямую...
|
|
4
logman
17.01.22
✎
00:33
|
(2) Извините, не совсем понял, как это может мне помочь
(3) Попробовал сделать как Вы сказали, но в наборах данных у меня пусто после выполнения запроса компоновщиком
|
|
5
osa1C
17.01.22
✎
08:11
|
(4) в (3) ответ, просто пройдись отладчиком, посмотри тот ли Макет и Схему подтягивает
|
|
6
acht
17.01.22
✎
09:20
|
(4) 99.99% что схема или настройки кривые.
Если не осиливаешь, то засучивай рукава и пиши генерацию строки условия ГДЕ по отборам вручную. Через рекурсивный обход групп, весь отбор изначально - большая группа "И". Через расстановку скобок там, генерацию условий сравнения, набивку запроса параметрами. Для запроса по одной таблице там ничего особо сложного нет. Вот когда таблиц несколько или в отборе разыменование через точку будет...
|
|
7
FIXXXL
17.01.22
✎
11:11
|
(0) не проще выгрузить результат СКД в таблицу значений? если прям запрос нужен - готовую таблицу передать в запрос...
|
|
8
DrShad
17.01.22
✎
11:12
|
(7) с языка снял
|
|