Доброго дня, коллеги. Дайте совет, пжл.

Есть отчет на СКД, например "количество" и "сумма" в разрезе "клиентов", "организаций", "номенклатуры". Причем пользователь произвольно меняет порядок группировок.

Вопрос в том, что имея внутри группировки, например "контрагенты" данные о том, какая номенклатура, в каком количество и за какую сумму была продана, нужно узнать рейтинг по сумме данной номенклатуры среди покупок этого клиента, т.е. какая номенклатура на первом месте по сумме продаж, какая на втором им т.д.

Выглядеть это должно примерно так:

Пупкин | 120 шт. | 3300 р. |
  Утюг | 20 шт. | 1800 р. | 1
  Кирпич | 100 шт. | 1500 р. | 2

Как этого добиться в СКД? Нужно как-то получить таблицу значений из записей вышестоящей группировки, но функция СКД ВычислитьВыражениеСГруппировкойТаблицаЗначений() требует жесткого порядка группировок, и потому я уже голову сломал, как такое сделать, так как с СКД работаю недавно и немного.

У кого есть мысли в какую сторону рыть?
---
Всё. Вопрос решен. Почти решен.
Вернулся к использованию функции МестоВПорядке(). Проблема изначально была в том, что функция МестоВПорядке("Количество") выдавала бред. Но потом я понял, что раз у нас поле в ресурсах, то надо использовать агрегирование - МестоВПорядке("Количество"). Теперь все показывает близко к идеалу, но имеет ту же беду что и РАНГ() в Excel: один и тот же ранг (рейтинг) у одинаковых значений.
То есть, если при сортировке по нужному полю идет 7 разных значений нужного ресурса, то функция вернет номера от 1 до 7, если потом идут 3 записи с одним значение ресурса, то функция вернет 10.
Осталось придумать как теперь сделать, чтобы вместо ранга = 10, выводились ранги 8,9,10.
Для Excel это решается использованием коррекции с помощью функции СЧЕТЕСЛИ(). А что использовать в СКД вместо такой функции, я пока не понял.
---
Сделайте ресурс % в группировке по сумме, по нему сортируйте, мест не будет, но будут идти по значению процента
---
Сделайте ресурс % в группировке по сумме, по нему сортируйте, мест не будет, но будут идти по значению процента
Нет, не подходит. Ресурсов три: количество, сумма реализации, прибыль. Рейтинги надо считать для всех трех ресурсов, причем сортировка должна быть по основному представления значения группировки. Это условия для пользователя обязательное. а значит нельзя просто отсортировать по нужному полю и вывести порядок. Вот для того я и хочу получить таблицу значений через выражения и с ней попробовать поработать: получить, отсортировать, отобрать.
---
нужно узнать рейтинг по сумме данной номенклатуры среди покупок этого клиента, т.е. какая номенклатура на первом месте по сумме продаж

Судя по этим словам критерий один, сумма продаж

(6) причем сортировка должна быть по основному представления значения группировки

Что вы под этим подразумеваете?
---
Судя по этим словам критерий один, сумма продаж
Описание задачи постарался упростить.
 Что вы под этим подразумевает
Подразумеваю, что если группировка - номенклатура или контрагент, то сортировка по наименованию, если - документы, то по дате
---
Варианты отчета не рассматривали? Как система должна понять как ей сортировать если вы хотите чтоб группировки менялись и одном случаи сортировка такая в другом другая?
---
Как система должна понять как ей сортировать если вы хотите чтоб группировки менялись и одном случаи сортировка такая в другом другая?
Не понял вопроса. Сортировку указывает пользователь в настройках. Если сортировки указанной нет, то используется сортировка по возрастанию по представлению значения группировки.
---
нужно количество и сумму сделать ресурсом в скд
---
сделать ресурсом
Сделаны сразу же. Использовал выражение вычисляемого поля МестоВПорядке() - получил бред. Решил разобраться с функциональностью ВычислитьВыражениеСГруппировкойТаблицаЗначений(), чтобы решить задачу. Но засада в том, что там надо указывать имена группировок, а как их определить через выражения СКД?
---
Сортировка в группировке по сумме и номер по порядку в группировке не оно?
---
Сортировка в группировке по сумме и номер по порядку в группировке не оно?
Нет. Не оно. В (6) я описал почему не подходит это решение, о котором я тоже первоначально подумал.
---
Всё. Вопрос решен. Почти решен.
Вернулся к использованию функции МестоВПорядке(). Проблема изначально была в том, что функция МестоВПорядке("Количество") выдавала бред. Но потом я понял, что раз у нас поле в ресурсах, то надо использовать агрегирование - МестоВПорядке("Количество"). Теперь все показывает близко к идеалу, но имеет ту же беду что и РАНГ() в Excel: один и тот же ранг (рейтинг) у одинаковых значений.
То есть, если при сортировке по нужному полю идет 7 разных значений нужного ресурса, то функция вернет номера от 1 до 7, если потом идут 3 записи с одним значение ресурса, то функция вернет 10.
Осталось придумать как теперь сделать, чтобы вместо ранга = 10, выводились ранги 8,9,10.
Для Excel это решается использованием коррекции с помощью функции СЧЕТЕСЛИ(). А что использовать в СКД вместо такой функции, я пока не понял.