Неправильно рассчитываются итоги в иерархической группировке на СКД. #803615


#0 by Prog Spb
Здравствуйте, прошу помочь разобраться. Есть отчет на СКД с группировками: Номенклатура (Иерархия), Серия. Есть ресурс "Цена" для каждой серии. Задача состоит в том, чтобы посчитать среднее значение цены в разрезе номенклатуры, т.е. отчет выходит в следующем виде: -- Серия                  | Сред.цена Конкретно на примере: - Группа Мебель                    | Уровень иерархии 1 -- Группа Стулья                     | Уровень иерархии 2   --- Номенклатура Стул Деревянный       | 15     - Серия 1                              | 10     - Серия 2                              | 20 --- Номенклатура Стул Железный         | 46,6 Проблема в верхних уровнях группировки (уровень иерархии 1 и 2). Мне нужно, чтобы средняя цена для этих группировок рассчитывалась как средняя цена номенклатуры входящей в группу. Т.е. на данном примере это было бы (15 + 46,6) / 2 = 30,8 - Группа Мебель                    | 30,8 -- Группа Стулья                     | 30,8 --- Номенклатура Стул Деревянный       | 15 --- Номенклатура Стул Железный         | 46,6 На данный момент отчет считает не среднюю цену номенклатуры, а среднюю цену всех серий входящих в группу. Т.е (10 + 20 + 10 + 70 + 60) / 5 =  34: - Группа Мебель                    | 34 -- Группа Стулья                     | 34 --- Номенклатура Стул Деревянный       | 15 --- Номенклатура Стул Железный         | 40 В результате неправильные показатели. На закладке ресурсы в СКД пробовал множество вариантов, сейчас этот: Поле | Выражение | Рассчитывать по Цена | Среднее(Цена) | Цена | Среднее(ВычислитьВыражениеСГруппировкойМассив("Среднее(Цена)", "Номенклатура")) | Общий итог
#1 by breezee
Может проще в запросе посчитать? Уже посчитана для номенклатуры, можно сгруппировать и разделить на количество номенклатур, наверное, используя группировки, до конца решения не вижу, но может это поможет)
#2 by Prog Spb
Это лишь один из ресурсов в которых надо посчитать сред. цену, а таких ещё в запросе более 10. Полезу в запрос увеличу время формирования отчета, которое и так не маленькое. Хотелось бы именно средствами СКД решить это. Ну наверняка же можно.
#3 by breezee
Может на СКД "Рассчитывать по" твои ресурсы тебе поможет? На вкладке "Ресурсы".
#4 by Prog Spb
Не совсем понял.
#5 by Prog Spb
Я в ресурсах "рассчитывать по" шаманил разными способами. Всё равно не дает результат. Добился только, чтобы в общий итог выводилась правильная цифра, но в верхние папки не могу.
#6 by breezee
Прошу прощения, не до конца дочитал первый пост. Может стоит вывести в запросе поле со значение 0, для расчетов, потом в ресурсах это поле вывести, в выражении написать "Среднее(Цена)" а в рассчитывать по "Номенклатура" я думаю, можеть быть проблема что ты рассчитываешь по общему итогу, а не по полю "номенклатура"
#7 by Prog Spb
Попробовал. Результат тот же: средняя цена по номенклатуре правильная, а выше в группировках средняя цена рассчитана по сериям.
#8 by Prog Spb
Нашел одно решение, может кому-то пригодится. В запросе добавляем поле "Номенклатура.родитель". На вкладке в СКД "Набор данных" - "Поля" в измерение Номенклатура ставим родитель "НоменклатураРодитель". Структуру отчета делаем таким образом: НоменклатураРодитель(Иерархия) Ресурсы: Поле | Выражение | Рассчитывать по Цена | Среднее(Цена) | Номенклатура Цена | Среднее(ВычислитьВыражениеСГруппировкойМассив("Среднее(Цена)", "Номенклатура")) | НоменклатураРодитель Иерархия, Общий итог
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С