Имя: Пароль:
1C
1C 7.7
v7: Запрос, упорядочивание по сумме
0 tesei
 
22.09.23
11:52
Есть запрос:
    ТекстЗапроса = "
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Покупатель = Регистр.Продажи.Покупатель;
    |Сумма1 = Регистр.Продажи.ПродСтоимость;
    |Функция Сумма2 = Сумма(Сумма1);
    |Группировка Покупатель без групп;";

Нужно упорядочить запрос по сумме. Т.е. первым выходит клиент с наибольшей суммой продаж, и далее по убыванию. Как это сделать?
1 Волшебник
 
22.09.23
11:57
Группировка <ИмяГруппировки>|<ПредопредГруппировка> [Упорядочить по <Порядок>[, <Порядок&#gt;]*]
            [Без Упорядочивания][Без Групп][Все [ВошедшиеВЗапрос]];

<Порядок> — используется только после ключевого слова Упорядочить по. Конкретизация внутренней переменной <ИмяГруппировки>, значение которой является параметром упорядочивания строк в группировке. Кроме того, в данном параметре можно использовать имя функции, объявленной в этом же запросе в операторе Функция;

https://webbrat.ru/programming/1s-77/queries/#p8
2 tesei
 
22.09.23
12:29
ТекстЗапроса = "
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Покупатель = Регистр.Продажи.Покупатель;
    |Сумма1 = Регистр.Продажи.ПродСтоимость;
    |Функция Сумма2 = Сумма(Сумма1);
    |Группировка Покупатель без групп Упорядочить по Сумма2;";

Сортирует по возрастанию. А как по убыванию? Не увидел в (1)
3 Djelf
 
22.09.23
12:39
(2) Если так пойдет и дальше, то придется весь СП тут выкладывать...

Группировка(<?>,)
Синтаксис:
Группировка(<Группировка>,<Направление>)
Назначение:
Получить следующее значение выборки Запроса
Возвращает: 1 - если получено следующее значение выборки запроса, 0 - иначе.
Параметры:
<Группировка> - выражение, содержащее номер или имя группировки.
<Направление> -  необязательный параметр. Число: 1 - выборка значений группировки по возрастанию; -1 (минус единица) - выборка значений группировки по убыванию. Значение по умолчанию: 1.
4 zenik
 
22.09.23
12:39
(2) Запрос.Группировка(...) - если я правильно помню, там параметры сортировки
5 tesei
 
22.09.23
12:43
(5) Спасибо. Я бы не писал, если был бы четкий отчет на вопрос. А то по поиску - в основном флуд.
6 tesei
 
22.09.23
12:50
Финальный релиз:

    ТекстЗапроса = "
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Покупатель = Регистр.Продажи.Покупатель;
    |Сумма1 = Регистр.Продажи.ПродСтоимость;
    |Функция Сумма2 = Сумма(Сумма1);
    |Группировка Покупатель без групп Упорядочить по Сумма2;";

...
    Пока Запрос.Группировка(1,-1) = 1 Цикл
        Таб.ВывестиСекцию("Покупатель");
    КонецЦикла;
7 ЯнСмит
 
22.09.23
12:56
кмк, проще выгрузить запрос в ТЗ, а потом уже крути-верти как угодно )
8 АгентБезопасной Нацио
 
22.09.23
13:24
(7) проще использовать нормальные запросы вместо штатных
Ошибка? Это не ошибка, это системная функция.