Расчет средних показателей в отчетах на СКД #781611


#0 by nemoxp
Есть выборка типа (перечисляю атрибуты): номенклатура, документ оприходования, документ продажи, стоимость продаж, прибыль, эффективность. Эффективность расчитываю как Прибыль / СтоимостьПродаж * 100%. Расчет идет по документам оприходования, т.е. 1 документу продажи может соответствовать много документов оприходования. Строю отчет на СКД. Группировка по строкам от верхнего уровня иерархии до нижнего: номенклатура, документ продажи, документ оприходования. Детальные записи: стоимость продаж, прибыль, эффективность. Требуется вычислять эффективность по группировкам. Я это сделал в настройках СКД на закладке "Ресурсы", установив формулу расчета "СРЕДНЕЕ". Для полей "Стоимость продаж" и "Прибыль" по группировкам вычисляется СУММА. Незадача в том, что результат расчета среднего значения Эффективности в группировке не соответствует расчету по значениям из той же группировки: "Прибыль / СтоимостьПродаж * 100%". И это математически верно, т.к. нижняя группировка по реализациям с несколькими оприходованиями портит картину... Как можно исправить ситуацию, чтобы расчет Эффективности по группировкам соответствовал значениям "Стоимость продаж" и "Прибыль" в той же группировки?
#1 by segn
Попробуй ВычислитьВыражение - там можно указать по какой группировке считать.
#2 by vicof
По умолчанию все агрегатные функции применяются к детальным записям - проблема в этом.
#3 by nemoxp
где это указывать?
#4 by nemoxp
Нашел. В вычисляемых полях, верно? Например: ВычислитьВыражение(Прибыль / СтоимостьПродаж * 100%, ....)? А что дальше в параметрах указать?
#5 by aleks_default
Сделай Среднее(Прибыль) / Среднее(СтоимостьПродаж) * 100%
#6 by тарам пам пам
Нужно сделать Среднее(ВычислитьВыражениеСГруппировкойМассив("Сумма(Прибыль) / Сумма(СтоимостьПродаж) * 100%", "ДокументОприходования"))
#7 by тарам пам пам
+ только "ДокументПродажи" там вместо "ДокументОприходования"
#8 by тарам пам пам
Блин, прочитал по диагонали вопрос и неверно понял его. Тебе похоже вообще в ресурсе нужно указать Сумма(Прибыль) / Сумма(СтоимостьПродаж) * 100% и не заморачиваться с ВычислитьВыражение.
#9 by nemoxp
Всем спасибо за участие! Но что-то все не то. Нужно чтобы Эффективность считалась по каждой строке, в т.ч. и по группировкам. Сделал по-другому. После формирования отчета и его вывода в ТабДок пробигаюсь по строкам и перерасчитываю значения Эффективности, примерно так: ПолеЭффективность = ЭлементыФормы.Результат.НайтиТекст("Эффективность");
#10 by KrasnSergey
В  ресурсах примерно так Среднее(ВычислитьВыражениеСГруппировкойМассив("Максимум(КоличествоСтавок)","Должность"))
#11 by aleks_default
Ты бы толком объяснил что конкретно тебе надо, формулу расчета по группировкам. Не пришлось бы извращаться. СКД позволяет рассчитать практически все.
#12 by nemoxp
Группировка по строкам от верхнего уровня иерархии до нижнего: номенклатура, документ продажи, документ оприходования. Детальные записи: стоимость продаж, прибыль, эффективность. Расчет Эффективности нужно делать по значениям в группировки, а не по детальным записям. Т.е. в группировки уровня "документ продажи" значения стоимость продаж и прибыль определяется как сумма по детальным записям. Эффективность по этой группировки нужно считать как: (сумма прибыли по группировки "документы продаж") / (сумму стоимость продаж по той же группировки) * 100
#13 by aleks_default
тогда как-то так Сумма(ВычислитьВыражениеСГруппировкойМассив("Сумма(Прибыль)","ДокументПродажи"))/Сумма(ВычислитьВыражениеСГруппировкойМассив("Сумма(СтоимостьПродаж)","ДокументПродажи"))*100
#14 by nemoxp
это вроде работает. проверяю. спасибо всем! только сейчас вникаю в функции для расчета вычисляемых полей!
#15 by aleks_default
Вернее если это расчет для группировки "Документ продажи", то Сумма(ВычислитьВыражениеСГруппировкойМассив("Сумма(Прибыль)","ДокументОприходования"))/Сумма(ВычислитьВыражениеСГруппировкойМассив("Сумма(СтоимостьПродаж)","ДокументОприходования"))*100
#16 by nemoxp
но это только для одного уровня группировки, для "ДокументПродажи". - а это вроде подходит для всех группировок...
#17 by aleks_default
Или там  если не сумма а среднее, замени где нужно
#18 by nemoxp
а как написать, если группировок 3, а нужно такое вычислить только для 2-х?
#19 by aleks_default
Там есть колонка "Рассчитывать по". И один и тот же ресурс можно добавлять на закладке "Ресурсы" несколько раз и через "рассчитывать по" разграничивать по каким группировкам какое выражение считать.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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