Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

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

Расчет средних показателей в отчетах на СКД
Я
   nemoxp
 
27.09.16 - 12:58
Есть выборка типа (перечисляю атрибуты): номенклатура, документ оприходования, документ продажи, стоимость продаж, прибыль, эффективность. Эффективность расчитываю как Прибыль / СтоимостьПродаж * 100%. Расчет идет по документам оприходования, т.е. 1 документу продажи может соответствовать много документов оприходования. Строю отчет на СКД. Группировка по строкам от верхнего уровня иерархии до нижнего: номенклатура, документ продажи, документ оприходования. Детальные записи: стоимость продаж, прибыль, эффективность. Требуется вычислять эффективность по группировкам. Я это сделал в настройках СКД на закладке "Ресурсы", установив формулу расчета "СРЕДНЕЕ". Для полей "Стоимость продаж" и "Прибыль" по группировкам вычисляется СУММА.

Незадача в том, что результат расчета среднего значения Эффективности в группировке не соответствует расчету по значениям из той же группировки: "Прибыль / СтоимостьПродаж * 100%". И это математически верно, т.к. нижняя группировка по реализациям с несколькими оприходованиями портит картину... Как можно исправить ситуацию, чтобы расчет Эффективности по группировкам соответствовал значениям "Стоимость продаж" и "Прибыль" в той же группировки?
 
 
   segn
 
1 - 27.09.16 - 13:04
Попробуй ВычислитьВыражение() - там можно указать по какой группировке считать.
   vicof
 
2 - 27.09.16 - 13:05
По умолчанию все агрегатные функции применяются к детальным записям - проблема в этом.
   nemoxp
 
3 - 27.09.16 - 13:16
(1) где это указывать?
   nemoxp
 
4 - 27.09.16 - 13:23
(1) Нашел. В вычисляемых полях, верно? Например: ВычислитьВыражение(Прибыль / СтоимостьПродаж * 100%, ....)? А что дальше в параметрах указать?
   aleks_default
 
5 - 27.09.16 - 13:55
Сделай Среднее(Прибыль) / Среднее(СтоимостьПродаж) * 100%
   тарам пам пам
 
6 - 27.09.16 - 14:44
(5) Вообще-то Среднее(Прибыль / СтоимостьПродаж * 100%) <> Среднее(Прибыль) / Среднее(СтоимостьПродаж) * 100%

Нужно сделать Среднее(ВычислитьВыражениеСГруппировкойМассив("Сумма(Прибыль) / Сумма(СтоимостьПродаж) * 100%", "ДокументОприходования"))
   тарам пам пам
 
7 - 27.09.16 - 14:46
(6)+ только "ДокументПродажи" там вместо "ДокументОприходования"
   тарам пам пам
 
8 - 27.09.16 - 14:48
Блин, прочитал по диагонали вопрос и неверно понял его. Тебе похоже вообще в ресурсе нужно указать Сумма(Прибыль) / Сумма(СтоимостьПродаж) * 100% и не заморачиваться с ВычислитьВыражение.
   nemoxp
 
9 - 28.09.16 - 13:30
Всем спасибо за участие! Но что-то все не то. Нужно чтобы Эффективность считалась по каждой строке, в т.ч. и по группировкам. Сделал по-другому. После формирования отчета и его вывода в ТабДок пробигаюсь по строкам и перерасчитываю значения Эффективности, примерно так:

ПолеЭффективность = ЭлементыФормы.Результат.НайтиТекст("Эффективность");
ПолеПрибыль = ЭлементыФормы.Результат.НайтиТекст("Прибыль");
ПолеСтоимость = ЭлементыФормы.Результат.НайтиТекст("Стоимость");
Для н = ПолеЭффективность.Верх По ЭлементыФормы.Результат.Высота Цикл
   Попытка
      Прибыль = Число(ЭлементыФормы.Результат.Область("R" + Строка(н) + "C" + Строка(ПолеПрибыль.Лево)).Текст);
      Стоимость = Число(ЭлементыФормы.Результат.Область("R" + Строка(н) + "C" + Строка(ПолеСтоимость.Лево)).Текст);
      ЭлементыФормы.Результат.Область("R" + Строка(н) + "C" + Строка(ПолеЭффективность.Лево)).Текст = Прибыль / Стоимость * 100;
   Исключение КонецПопытки
КонецЦикла;
   KrasnSergey
 
10 - 28.09.16 - 13:39
В  ресурсах примерно так 
Среднее(ВычислитьВыражениеСГруппировкойМассив("Максимум(КоличествоСтавок)","Должность"))
 
 Рекламное место пустует
   aleks_default
 
11 - 28.09.16 - 14:29
Ты бы толком объяснил что конкретно тебе надо, формулу расчета по группировкам. Не пришлось бы извращаться. СКД позволяет рассчитать практически все.
   nemoxp
 
12 - 29.09.16 - 11:26
(11) Группировка по строкам от верхнего уровня иерархии до нижнего: номенклатура, документ продажи, документ оприходования. Детальные записи: стоимость продаж, прибыль, эффективность.

Расчет Эффективности нужно делать по значениям в группировки, а не по детальным записям. Т.е. в группировки уровня "документ продажи" значения стоимость продаж и прибыль определяется как сумма по детальным записям. Эффективность по этой группировки нужно считать как: (сумма прибыли по группировки "документы продаж") / (сумму стоимость продаж по той же группировки) * 100
   aleks_default
 
13 - 29.09.16 - 11:32
(12) тогда как-то так

Сумма(ВычислитьВыражениеСГруппировкойМассив("Сумма(Прибыль)","ДокументПродажи"))/Сумма(ВычислитьВыражениеСГруппировкойМассив("Сумма(СтоимостьПродаж)","ДокументПродажи"))*100
   nemoxp
 
14 - 29.09.16 - 11:36
(8) это вроде работает. проверяю. спасибо всем! только сейчас вникаю в функции для расчета вычисляемых полей!
   aleks_default
 
15 - 29.09.16 - 11:36
Вернее если это расчет для группировки "Документ продажи", то 
Сумма(ВычислитьВыражениеСГруппировкойМассив("Сумма(Прибыль)","ДокументОприходования"))/Сумма(ВычислитьВыражениеСГруппировкойМассив("Сумма(СтоимостьПродаж)","ДокументОприходования"))*100
   nemoxp
 
16 - 29.09.16 - 11:37
(13) но это только для одного уровня группировки, для "ДокументПродажи". (8) - а это вроде подходит для всех группировок...
   aleks_default
 
17 - 29.09.16 - 11:37
Или там  если не сумма а среднее, замени где нужно
   nemoxp
 
18 - 29.09.16 - 11:42
(15) а как написать, если группировок 3, а нужно такое вычислить только для 2-х?
   aleks_default
 
19 - 29.09.16 - 11:54
Там есть колонка "Рассчитывать по".
И один и тот же ресурс можно добавлять на закладке "Ресурсы" несколько раз и через "рассчитывать по" разграничивать по каким группировкам какое выражение считать.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует