![]() |
|
Запрос с разными группировками | ☑ | ||
---|---|---|---|---|
0
дущ
02.09.12
✎
16:23
|
Запрос такой
|ВЫБРАТЬ | ВсеДанные.Номенклатура.ГруппаАкциза КАК ГруппаАкциза, | ВсеДанные.Номенклатура.Производитель КАК Производитель, | ВсеДанные.Подразделение КАК Подразделение, | ВсеДанные.Поставщик, | ВсеДанные.Дата, | ВсеДанные.НомерТТН, | СУММА(ВсеДанные.ОбъемЗакупленнойПродукции) КАК ОбъемЗакупленнойПродукции, | ВсеДанные.НомерГТД |ИЗ | ВсеДанные КАК ВсеДанные | |ИТОГИ | СУММА(ОбъемЗакупленнойПродукции) |ПО | ОБЩИЕ, | Подразделение я его вырезал из большого запроса, в этом виде он не совсем рабочий, но это неважно теперь мне нужно два раза пройти по запросу, но в первый раз мне нужно получить только итоги и детальные записи |ПО | ОБЩИЕ а второй раз Подразделения и детальные записи без общих итогов |ПО | Подразделение пытаюсь делать так в первый раз ИтогоОбщиеДанные = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ОБЩИЕ"); ИтогоОбщиеДанные.Следующий(); ВыборкаОбщиеДанные = ИтогоОбщиеДанные.Выбрать(, ""); Пока ВыборкаОбщиеДанные.Следующий() Цикл во второй раз ВыборкаПодразделения = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Подразделение"); Пока ВыборкаПодразделения.Следующий() Цикл Выборка = ВыборкаПодразделения.Выбрать(, ""); Пока Выборка.Следующий() Цикл но на первой же выборке он срезается с ошибкой "Различное количество измерений в списке измерений и списке источников для заполнения измерения". Как из одного запроса выбрать записи, но с разными группировками? Можно, конечно, написать два запроса, но хочется именно академическое решение. Вообще 2-ой и 3-ий параметры в методе Выбрать мне не ясны вообще. Где-нибудь есть их нормальное описание? |
|||
1
Rie
02.09.12
✎
16:27
|
(0) Так а просто обходить всё дерево, игнорируя ненужные группировки - не подойдёт?
|
|||
2
дущ
02.09.12
✎
16:32
|
(1) нет, нужно именно итоги. Т.е. в первой выборке мне подразделения не нужны вообще, мне нужно что бы по ним данные свернулись.
|
|||
3
дущ
02.09.12
✎
16:36
|
в общем, сам начинаю понимать, что скорее всего так не получится. Если в списке полей выборки есть Подразделение, то запрос будет разворачиваться по этой точке детализации хоть ты тресни. Придется переписать на два запроса в пакете.
Всем спасибо, сам спросил, сам ответил. А вот почитать про параметры метода Выбрать было бы интересно. Нигде нет? |
|||
4
Rie
02.09.12
✎
16:40
|
(3) Зачем два запроса? При обходе проверяешь ТипЗаписи Запроса и ИмяГруппировки. Не подходит - игнорируешь. Потом идёшь второй раз. Опять проверяешь и игнорируешь неподходящие.
|
|||
5
дущ
02.09.12
✎
16:44
|
(4) смотри. Таблица данных запроса
Подразделение1 100 рублей Подразделение1 200 рублей Подразделение2 150 рублей Если выбрать только ОБЩИЕ потом детали без подразделения, то будет Итого 450 рублей Подразделение1 300 рублей Подразделение2 150 рублей а если выбирать твоим методом, то получится Итого 450 рублей Подразделение1 100 рублей Подразделение1 200 рублей Подразделение2 150 рублей чувствуешь разницу? |
|||
6
Rie
02.09.12
✎
16:56
|
(5) Не понял, а почему у тебя Подразделение1 дублируется? Вроде бы не должно при таких итогах?
|
|||
7
эцп
02.09.12
✎
17:01
|
(0) Стоит попробовать так:
ИтогоОбщиеДанные = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ОБЩИЕ"); ИтогоОбщиеДанные.Следующий(); // Здесь заполняешь по группировке ОБЩИЕ ВыборкаПодразделения = ИтогоОбщиеДанные.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Подразделение"); Пока ВыборкаПодразделения.Следующий() Цикл // Здесь заполняешь по группировке "Подразделения" КонецЦикла; |
|||
8
Rie
02.09.12
✎
17:39
|
(3) Посмотрел (7) - и натолкнуло на мысль: а вот зачем в (0)
ИтогоОбщиеДанные.Следующий(); ВыборкаОбщиеДанные = ИтогоОбщиеДанные.Выбрать(, ""); |
|||
9
эцп
02.09.12
✎
17:48
|
(8) Первая строчка нужна, чтобы спозиционироваться на общие итоги (здесь все верно), а вторая, чтобы открыть выборку по детальным (поэтому у ТС и не работало)
|
|||
10
Rie
02.09.12
✎
18:44
|
(9) Поскольку далее предполагается цикл - первая строчка не нужна.
Вторая - лишь создаёт проблему. IMHO. |
|||
11
эцп
02.09.12
✎
19:19
|
(10) Поэтому я и предложил решение в (7)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |