|
Напомните, как в простом запросе собрать все итоги? |
☑ |
0
Gluk
31.05.17
✎
19:39
|
Запрос:
"...
| НомерЧека,
| СтрокаЧека
|ИТОГИ ПО
| Дата,
| Склад,
| КассаККМ";
как выбрать с обходом по группировкам сразу по трем итоговым полям?
|
|
1
Волшебник
модератор
31.05.17
✎
20:15
|
циклом
|
|
2
Gluk
31.05.17
✎
20:21
|
одним циклом можно?
|
|
3
Волшебник
модератор
31.05.17
✎
20:22
|
(2) Можно одним циклом и ещё двумя вложенными. А можно и вообще одним, если выбирать без итогов.
|
|
4
Gluk
31.05.17
✎
20:26
|
Мне бы один цикл по трем группировочным полям, а вложеный по деталям
|
|
5
Волшебник
модератор
31.05.17
✎
20:28
|
(4) Программирование — это фантазия плюс умение крутить циклы.
|
|
6
Gluk
31.05.17
✎
20:32
|
фантазии как видите хватает, а циклов чем меньше, тем быстрее
|
|
7
Волшебник
модератор
31.05.17
✎
20:38
|
(6) Сделай хоть что-то, предъяви код, пожалуйся на производительность, предъяви результаты замера. Действуй постепенно.
|
|
8
Gluk
31.05.17
✎
20:46
|
Запрос.Текст =
"ВЫБРАТЬ
| ОтчетОРозничныхПродажахТовары.Ссылка.Дата КАК Дата,
| ОтчетОРозничныхПродажахТовары.Ссылка.Склад КАК Склад,
| ОтчетОРозничныхПродажахТовары.Ссылка.КассаККМ КАК КассаККМ,
| ОтчетОРозничныхПродажахТовары.СтрокаЧека КАК СтрокаЧека,
| ОтчетОРозничныхПродажахТовары.Номенклатура,
| ОтчетОРозничныхПродажахТовары.Количество,
| ОтчетОРозничныхПродажахТовары.Сумма
|ИЗ
| Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары
|ГДЕ
| ОтчетОРозничныхПродажахТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
|
|УПОРЯДОЧИТЬ ПО
| Дата,
| Склад,
| КассаККМ,
| СтрокаЧека
|ИТОГИ ПО
| Дата,
| Склад,
| КассаККМ";
ВыборкаДата = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаДата.Следующий() Цикл
ОбластьДата.Параметры.Заполнить(ВыборкаДата);
ТабДок.Вывести(ОбластьДата, ВыборкаДата.Уровень());
ВыборкаСклад = ВыборкаДата.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаСклад.Следующий() Цикл
ОбластьСклад.Параметры.Заполнить(ВыборкаСклад);
ТабДок.Вывести(ОбластьСклад, ВыборкаСклад.Уровень());
ВыборкаКассаККМ = ВыборкаСклад.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаКассаККМ.Следующий() Цикл
ОбластьКассаККМ.Параметры.Заполнить(ВыборкаКассаККМ);
ТабДок.Вывести(ОбластьКассаККМ, ВыборкаКассаККМ.Уровень());
ВыборкаДетальныеЗаписи = ВыборкаКассаККМ.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЦикла;
Как можно обойтись одной выборкой по итогам?
|
|
9
Волшебник
модератор
31.05.17
✎
20:49
|
(8) погугли ОбходРезультатаЗапроса.
|
|
10
Бертыш
31.05.17
✎
21:05
|
дебют товарищи это квазиунофантазия
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший