|
Обход запроса по группировкам | ☑ | ||
---|---|---|---|---|
0
эцп
10.10.11
✎
17:18
|
|ИТОГИ
| СУММА(КоличествоОстаток) |ПО | Номенклатура, | Характеристика"; Выборка1 = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Номенклатура"); Пока Выборка1.Следующий() Цикл Выборка2 = Выборка1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Характеристика"); Пока Выборка2.Следующий() Цикл //Здесь проверяются каке-то условия //Если не удовлетворяет условию Тогда Продолжить; КонецЕсли; Выборка3 = Выборка2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); //Тело цикла КонецЦикла; КонецЦикла; КонецЦикла; Можно ли такую конструкцию сократить до 2 циклов путем объединения первого и второго цикла в один? |
|||
1
Лефмихалыч
10.10.11
✎
17:19
|
(10) замени итоги на группировку
|
|||
2
эцп
10.10.11
✎
17:19
|
(0) сорри, вот так:
|ИТОГИ | СУММА(КоличествоОстаток) |ПО | Номенклатура, | Характеристика"; Выборка1 = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Номенклатура"); Пока Выборка1.Следующий() Цикл Выборка2 = Выборка1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Характеристика"); Пока Выборка2.Следующий() Цикл //Здесь проверяются каке-то условия //Если не удовлетворяет условию Тогда Продолжить; КонецЕсли; Выборка3 = Выборка2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока Выборка3.Следующий() Цикл //Тело цикла КонецЦикла; КонецЦикла; КонецЦикла; Можно ли такую конструкцию сократить до 2 циклов путем объединения первого и второго цикла в один? |
|||
3
эцп
10.10.11
✎
17:20
|
(1) Не понял, поясни
|
|||
4
Ненавижу 1С
гуру
10.10.11
✎
17:21
|
можно, а зачем?
|
|||
5
Лефмихалыч
10.10.11
✎
17:22
|
или даже просто вообще удали итоги нафиг. Судя по "КоличествоОстаток", ты получаешь данные из виртуальной таблицы, а они уже и так сгруппированы.
|
|||
6
Maxus43
10.10.11
✎
17:22
|
если используеш ИТОГИ то у тебя в результате Дерево. дерево обходится в зависимсости от уровня вложенности... если дерево не надо то Обход результата ПРЯМОЙ сделай, но хз что будет в выборке тогда
|
|||
7
Лефмихалыч
10.10.11
✎
17:23
|
|
|||
8
Лефмихалыч
10.10.11
✎
17:24
|
(6) таблица, в которой итоговые строки будут содержать NULL для не суммируемых и не группировочных полей
|
|||
9
эцп
10.10.11
✎
17:33
|
(4) Как?
(5) Выборка производится из двух регистров (остатки одного вычитаются из остатков другого) (6) Дерево надо: на какой-то ветви дерева (см. комментарии в коде) нужно принять решение, идти к листьям (3 уровень вложенности) или нет, поэтому плоский запрос не подходит |
|||
10
эцп
10.10.11
✎
17:41
|
Хотел бы сократить до такого варианта, но 1Ска ругается благим матом
Выборка1 = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Номенклатура,Характеристика"); Пока Выборка1.Следующий() Цикл //Здесь проверяются каке-то условия Если не {удовлетворяет условию} Тогда Продолжить; КонецЕсли; Выборка3 = Выборка1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока Выборка3.Следующий() Цикл //Тело цикла КонецЦикла; КонецЦикла; |
|||
11
unregistered
10.10.11
✎
18:00
|
Почему условие нельзя в запросе написать? Зачем его проверять именно при обходе?
|
|||
12
эцп
10.10.11
✎
18:27
|
(11) Условие в запросе сработает на самом нижнем уровне группировки, а мне нужно проверить на 2 уровне
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |