Вход | Регистрация
 

1с группировка по двум параметрам

1с группировка по двум параметрам
Я
   illiona
 
17.09.20 - 13:47
Запрос.Текст = "ВЫБРАТЬ
                   |    ТЗ.Склад КАК Склад,
                   |    ТЗ.СкидкаНаценка КАК СкидкаНаценка,
                   |    ТЗ.Номенклатура КАК Номенклатура,
                   |    ТЗ.КоличествоПрименений КАК КоличествоПрименений,
                   |    ТЗ.Сумма КАК Сумма
                   |ПОМЕСТИТЬ Оплаты
                   |ИЗ
                   |    &ТЗ КАК ТЗ
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    Оплаты.Склад КАК Склад,
                   |    Оплаты.СкидкаНаценка КАК СкидкаНаценка,
                   |    Оплаты.Номенклатура КАК Номенклатура,
                   |    СУММА(Оплаты.КоличествоПрименений) КАК КоличествоПрименений,
                   |    СУММА(Оплаты.Сумма) КАК Сумма
                   |ИЗ
                   |    Оплаты КАК Оплаты
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    Оплаты.Склад,
                   |    Оплаты.Номенклатура,
                   |    Оплаты.СкидкаНаценка
                   |ИТОГИ
                   |    СУММА(КоличествоПрименений),
                   |    СУММА(Сумма)
                   |ПО
                   |    Склад,
                   |    СкидкаНаценка";
              
      ТабДок.НачатьАвтогруппировкуСтрок();
      Выборка1  = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
      Пока Выборка1.Следующий() Цикл
          ОбластьСтрочка1.Параметры.Склад=Выборка1.Склад;
          ТабДок.Вывести(ОбластьСтрочка1,Выборка1.Уровень());
        
            Выборка2 = Выборка1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
            Пока Выборка2.Следующий() Цикл
                ОбластьСтрочка2.Параметры.Заполнить(Выборка2);
                ОбластьСтрочка2.Параметры.СкидкаНаценка=Выборка2.СкидкаНаценка;
                ТабДок.Вывести(ОбластьСтрочка2,Выборка2.Уровень());
                
                Выборка3 = Выборка2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
                Пока Выборка3.Следующий() Цикл
                        ОбластьСтрочка.Параметры.Заполнить(Выборка3);
                        ОбластьСтрочка.Параметры.Номенклатура=Выборка3.Номенклатура;
                        ОбластьСтрочка.Параметры.КоличествоПрименений=Выборка3.КоличествоПрименений;
                        ОбластьСтрочка.Параметры.Сумма=Выборка3.Сумма;

                        ТабДок.Вывести(ОбластьСтрочка);
                    КонецЦикла;

                
            КонецЦикла;
        КонецЦикла;
ТабДок.ЗакончитьАвтогруппировкуСтрок();

Не могу понять, по складу плюсиком сворачивается, а по СкидкаНаценка нет(. Подскажите пожалуйста
   ДенисЧ
 
1 - 17.09.20 - 13:49
Никогда не доверял автоматам от 1с.
Всегда группирую руками. И никогда ещё не подводило.

И тебе советую
   illiona
 
2 - 17.09.20 - 13:50
подскажите как, я с группировками вообще тяжеловато
   ДенисЧ
 
3 - 17.09.20 - 13:56
Выборка1  = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ТабДок.НачатьГруппуСтрок("Склад");
      Пока Выборка1.Следующий() Цикл
....
                Выборка3 = Выборка2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ТабДок.НачатьГруппуСтрок("СкидкаНаценка");
                Пока Выборка3.Следующий() Цикл
...   КонецЦикла;
табДок.ЗакончитьГруппуСтрок();
КонецЦикла;

табДок.ЗакончитьГруппуСтрок();

Где-то так
   illiona
 
4 - 17.09.20 - 14:06
Выборка1  = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
      ТабДок.НачатьГруппуСтрок("Склад");
      Пока Выборка1.Следующий() Цикл
          ОбластьСтрочка1.Параметры.Склад=Выборка1.Склад;
          ТабДок.Вывести(ОбластьСтрочка1,Выборка1.Уровень());
        
            Выборка2 = Выборка1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
            Пока Выборка2.Следующий() Цикл
                ОбластьСтрочка2.Параметры.Заполнить(Выборка2);
                ОбластьСтрочка2.Параметры.СкидкаНаценка=Выборка2.СкидкаНаценка; 
                ТабДок.Вывести(ОбластьСтрочка2,Выборка2.Уровень());
                
                Выборка3 = Выборка2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
                ТабДок.НачатьГруппуСтрок("СкидкаНаценка");
                Пока Выборка3.Следующий() Цикл
                        ОбластьСтрочка.Параметры.Заполнить(Выборка3);
                        ОбластьСтрочка.Параметры.Номенклатура=Выборка3.Номенклатура;
                        ОбластьСтрочка.Параметры.КоличествоПрименений=Выборка3.КоличествоПрименений;
                        ОбластьСтрочка.Параметры.Сумма=Выборка3.Сумма;

                        ТабДок.Вывести(ОбластьСтрочка);
                    КонецЦикла;
            табДок.ЗакончитьГруппуСтрок();
                
            КонецЦикла;
        КонецЦикла;
        табДок.ЗакончитьГруппуСтрок();


Сделала вот так, теперь сумму по складу не дает, только по СкидкаНаценка
   illiona
 
5 - 17.09.20 - 14:08
наверное в запросе, что-то раз сумму по складам не дает
   ДенисЧ
 
6 - 17.09.20 - 14:09
Ммм... А кто в секции склада будет сумму запускать? Алексей Анатольевич пока занят, Александр Сергеевич... Ну тоже...
   illiona
 
7 - 17.09.20 - 14:10
подскажите плиз
   illiona
 
8 - 17.09.20 - 14:18
вроде Склад как СкидкаНаценка сделан
   illiona
 
9 - 17.09.20 - 16:41
Группировки получились. Теперь в другом вопрос
"ВЫБРАТЬ
                   |    ТЗ.Склад КАК Склад,
                   |    ТЗ.СкидкаНаценка КАК СкидкаНаценка,
                   |    ТЗ.Номенклатура КАК Номенклатура,
                   |    ТЗ.КоличествоПрименений КАК КоличествоПрименений,
                   |    ТЗ.Сумма КАК Сумма
                   |ПОМЕСТИТЬ Оплаты
                   |ИЗ
                   |    &ТЗ КАК ТЗ
                   |;
                   |
                   ////////////////////////////////////////////////////////////////////////////////

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


в запросе одинаковые позиции дублирует
   illiona
 
10 - 17.09.20 - 16:45
не группирует их

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.