Всем доброго времени суток!

Проблема заключается в следующем. Есть отчет в котором выводится дни просрочки для каждого документа с группировкой по контрагенту. В группировке этот ресурс вычисляется как среднее. На основании этого среднего значения мне нужно для контрагента установить категорию. я не пойму как именно мне с этим поступить. Пробовал через пользовательские вычисляемые поля, но они вычисляются по каждой строчки отдельно и соответственно один и тот же контрагент может быть в нескольких категориях, что не правильно. Как еще можно вычислить данную категорию в рамках группировки?
---
кури вкладку ресурсы.
Там в выражении можно формулы прописывать, указывать по каким группировкам рассчитывать.
Ну и соответственно любимая функция "ВычислитьВыражениеСГруппировкойМассив" - может понадобиться
---
есть третий путь, но сложноватый

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

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

Решение:

1. Добавить набор данных объект с полями "Контрагент, Категория"

2. В модуле объекта-отчета

```1c
    ПриКомпоновкеРезультата()

    СтандартнаяОбработка = Ложь;

    // 1-ый проход
    // Во внешний набор передаем пустую таблицу с колонками "Контрагент, Категория"
    ....
    // Выполняем компоновку в коллекцию значений
    ....
    // Получаем ТзКатегорийКонтрагентов сразу из коллекции или по алгоритму
    ТзКатегорийКонтрагентов = ....

    // 2-ой проход
    // Во внешний набор передаем ТзКатегорийКонтрагентов
    // Выполняем туже самую схему с теми же настройками,
    // А основной набор и набор данных объект соединены по Контрагенту в схеме компоновки.
```

Я так делал когда очень сложно(невозможно) агрегировать результаты группировок на лету(отчеты по АВС, прогнозированию и т.д.) .

Недостатки - два прохода и чутка кода если с умом
Преимущества - одна схема компоновки и отсутствие трехэтажных функций СКД в настройках.
---
выше уже дали верное напраление
выбор
когда Максимум(ВычислитьВыражениеСГруппировкойМассив("Среднее(Просрочка)","Контрагент")) <= 3 Тогда
"категория 1"
когда Максимум(ВычислитьВыражениеСГруппировкойМассив("Среднее(Просрочка)","Контрагент")) <= 1 Тогда
"Категория 2"
Иначе
"Категория 3"
Конец
---
можно попробовать два способа
1. (более реальный) после формирования отчета СКД программно обработать табличный документ -"Результат". Находить поле контрагент, и вычислять для него категорию
2. (может не получится) в скд, в запросе, добавить пустое поле (например с пустой строкой). Далее, на закладке ресурсы, для группировки по этому полю писать код, который использует группировки соседних столбцов
---
кури вкладку ресурсы.
Там в выражении можно формулы прописывать, указывать по каким группировкам рассчитывать.
Ну и соответственно любимая функция "ВычислитьВыражениеСГруппировкойМассив" - может понадобиться
---
можно попробовать два способа
1. (более реальный) после формирования отчета СКД программно обработать табличный документ -"Результат". Находить поле контрагент, и вычислять для него категорию
2. (может не получится) в скд, в запросе, добавить пустое поле (например с пустой строкой). Далее, на закладке ресурсы, для группировки по этому полю писать код, который использует группировки соседних столбцов
---
есть третий путь, но сложноватый

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

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

Решение:

1. Добавить набор данных объект с полями "Контрагент, Категория"

2. В модуле объекта-отчета

```1c
    ПриКомпоновкеРезультата()

    СтандартнаяОбработка = Ложь;

    // 1-ый проход
    // Во внешний набор передаем пустую таблицу с колонками "Контрагент, Категория"
    ....
    // Выполняем компоновку в коллекцию значений
    ....
    // Получаем ТзКатегорийКонтрагентов сразу из коллекции или по алгоритму
    ТзКатегорийКонтрагентов = ....

    // 2-ой проход
    // Во внешний набор передаем ТзКатегорийКонтрагентов
    // Выполняем туже самую схему с теми же настройками,
    // А основной набор и набор данных объект соединены по Контрагенту в схеме компоновки.
```

Я так делал когда очень сложно(невозможно) агрегировать результаты группировок на лету(отчеты по АВС, прогнозированию и т.д.) .

Недостатки - два прохода и чутка кода если с умом
Преимущества - одна схема компоновки и отсутствие трехэтажных функций СКД в настройках.
---
выше уже дали верное напраление
выбор
когда Максимум(ВычислитьВыражениеСГруппировкойМассив("Среднее(Просрочка)","Контрагент")) <= 3 Тогда
"категория 1"
когда Максимум(ВычислитьВыражениеСГруппировкойМассив("Среднее(Просрочка)","Контрагент")) <= 1 Тогда
"Категория 2"
Иначе
"Категория 3"
Конец
---
Всем спасибо! Решение и в правда оказалось очень просто я от чего-то решил что в ресурсах может выступать только числа.