Имя: Пароль:
1C
1С v8
Обход группировок по результатам
0 shadow_sw
 
22.06.16
06:30
Доброго времени суток!
Подскажите чяднт
запрос:

    Запрос = Новый Запрос;
    Запрос.Текст =
           "ВЫБРАТЬ
           |    ЗаказПокупателяТовары.Ссылка.Грузчик КАК Грузчик,
           |    КОЛИЧЕСТВО(ЗаказПокупателяТовары.НомерСтроки) КАК КоличествоСтрок,
           |    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказПокупателяТовары.Ссылка) КАК КоличествоЗаказов,
           |    ЗаказПокупателяТовары.Ссылка КАК документ
           |ИЗ
           |    Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
           |ГДЕ
           |    ЗаказПокупателяТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
           |    И ЗаказПокупателяТовары.Ссылка.ПометкаУдаления = ЛОЖЬ
           |
           |СГРУППИРОВАТЬ ПО
           |    ЗаказПокупателяТовары.Ссылка.Грузчик,
           |    ЗаказПокупателяТовары.Ссылка
           |ИТОГИ
           |    СУММА(КоличествоСтрок),
           |    СУММА(КоличествоЗаказов)
           |ПО
           |    ОБЩИЕ,
           |    Грузчик,
           |    документ";
          
        Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
        Запрос.УстановитьПараметр("ДатаКон", КонецДня(ДатаКон));
    
        
    Результат = Запрос.Выполнить().Выбрать();


вывод


    Пока результат.Следующий() Цикл
        
        ВыборкаГрузчики = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Грузчик");
        
        Пока ВыборкаГрузчики.Следующий() Цикл
            Секция.Параметры.Грузчик = ВыборкаГрузчики.Грузчик;
            ДокРезультат.Вывести(Секция, 1);
            
            ВыборкаЗаказ =Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Документ");
               Пока ВыборкаЗаказ.Следующий() Цикл
                СекцияЗаказ.Параметры.Заказ = ВыборкаЗаказ.Документ;
                ДокРезультат.Вывести(СекцияЗаказ,2);
            КонецЦикла;
        КонецЦикла;


получаю вот такую картину

http://s019.radikal.ru/i604/1606/b2/b85ed141c51b.jpg
1 shadow_sw
 
22.06.16
06:32
по сути необходима структура типа:

Грузчик1    показатель1 показатель 2
|----ДокументЗаказа1
|----ДокументЗаказа2
Грузчик2    показатель1 показатель 2
|----ДокументЗаказа3
|----ДокументЗаказа4
2 Dilgorp
 
22.06.16
06:42
ВыборкаГрузчики = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        
        Пока ВыборкаГрузчики.Следующий() Цикл
            Секция.Параметры.Грузчик = ВыборкаГрузчики.Грузчик;
            ДокРезультат.Вывести(Секция, 1);
            
            ВыборкаЗаказ =ВыборкаГрузчики.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
               Пока ВыборкаЗаказ.Следующий() Цикл
                СекцияЗаказ.Параметры.Заказ = ВыборкаЗаказ.Документ;
                ДокРезультат.Вывести(СекцияЗаказ,2);
            КонецЦикла;
        КонецЦикла;
3 Dilgorp
 
22.06.16
06:43
как то так
4 shadow_sw
 
22.06.16
06:49
к сожалению не взлетело, вообще не выдает данных таким способом
5 catena
 
22.06.16
06:51
Результат = Запрос.Выполнить()


        ВыборкаГрузчики = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Грузчик");
        
        Пока ВыборкаГрузчики.Следующий() Цикл
            Секция.Параметры.Грузчик = ВыборкаГрузчики.Грузчик;
            ДокРезультат.Вывести(Секция, 1);
            
            ВыборкаЗаказ =Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Документ");
               Пока ВыборкаЗаказ.Следующий() Цикл
                СекцияЗаказ.Параметры.Заказ = ВыборкаЗаказ.Документ;
                ДокРезультат.Вывести(СекцияЗаказ,2);
            КонецЦикла;
6 Dilgorp
 
22.06.16
06:52
Вместо
Результат = Запрос.Выполнить().Выбрать();


вывод

    Пока результат.Следующий() Цикл
        
        ВыборкаГрузчики = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Грузчик");
        
        Пока ВыборкаГрузчики.Следующий() Цикл
            Секция.Параметры.Грузчик = ВыборкаГрузчики.Грузчик;
            ДокРезультат.Вывести(Секция, 1);
            
            ВыборкаЗаказ =Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Документ");
               Пока ВыборкаЗаказ.Следующий() Цикл
                СекцияЗаказ.Параметры.Заказ = ВыборкаЗаказ.Документ;
                ДокРезультат.Вывести(СекцияЗаказ,2);
            КонецЦикла;
        КонецЦикла;

должно быть

ВыборкаГрузчики = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        
        Пока ВыборкаГрузчики.Следующий() Цикл
            Секция.Параметры.Грузчик = ВыборкаГрузчики.Грузчик;
            ДокРезультат.Вывести(Секция, 1);
            
            ВыборкаЗаказ =ВыборкаГрузчики.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
               Пока ВыборкаЗаказ.Следующий() Цикл
                СекцияЗаказ.Параметры.Заказ = ВыборкаЗаказ.Документ;
                ДокРезультат.Вывести(СекцияЗаказ,2);
            КонецЦикла;
        КонецЦикла;
7 catena
 
22.06.16
06:52
Не, стоп
8 catena
 
22.06.16
06:52
Результат = Запрос.Выполнить()


        ВыборкаГрузчики = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Грузчик");
        
        Пока ВыборкаГрузчики.Следующий() Цикл
            Секция.Параметры.Грузчик = ВыборкаГрузчики.Грузчик;
            ДокРезультат.Вывести(Секция, 1);
            
            ВыборкаЗаказ =ВыборкаГрузчики.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Документ");
9 Dilgorp
 
22.06.16
06:54
|    ОБЩИЕ,
и |    документ"; из итогов нужно убрать
10 Dilgorp
 
22.06.16
06:54
тогда мой вариант должен отработать
11 shadow_sw
 
22.06.16
07:10
(10) спасибо заработало
(8) спасибо за помощь