Имя: Пароль:
1C
 
Напомните, как в простом запросе собрать все итоги?
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
дебют товарищи это квазиунофантазия