Имя: Пароль:
1C
 
СКД. Расчет рентабельности для произвольных группировок
0 vi0
 
23.11.15
12:29
Добрый день

Задача - разработать отчет о прибылях и убытках http://img.donnet.ru/i/2015/11/23/eb1f938.png
Нарастающим итогом рассчитываются
- Маржинальная прибыль (состоит из статей по продажам)
- Чистая прибыль (Маржинальная прибыль - прочие статьи)

Рентабельность продаж = Маржинальная прибыль / Выручка * 100
Рентабельность бизнеса = Чистая прибыль / Выручка * 100

Как реализовать подобное на СКД?
Особенно с учетом, что есть горизонтальные группировки, и они могут быть разными: периоды, подразделения итд
Конкретно сложность возникает расчета при наличии дополнительных группировок: горизонтальных или дополнительных вертикальных (например, расчет рентабельности по подразлделению)

Сейчас склоняюсь к разработке кодом без СКД
1 los_hooliganos
 
23.11.15
12:36
Варианта 2.

а. Посчитать нарастающий итог запросом.
б. Использовать Вычисляемые поля.
2 aleks_default
 
23.11.15
12:37
(0)Ну я такое делал на СКД.
3 los_hooliganos
 
23.11.15
12:37
(1) Для любителей экстрима можно сделать все функциональным программированием.
4 vi0
 
23.11.15
12:43
использовал вычисляемые поля
что-то типа

ВЫБОР КОГДА ГруппировкаРентабельность = &РентабельностьСделок ТОГДА ВычислитьВыражение("СУММА(МаржинальнаяПрибыль)", "ОбщийИтог") / ВычислитьВыражение("СУММА(СуммаВыручки)", "ОбщийИтог") * 100
  КОГДА ГруппировкаРентабельность = &РентабельностьБизнеса ТОГДА ВычислитьВыражение("СУММА(ЧистаяПрибыль)", "ОбщийИтог") / ВычислитьВыражение("СУММА(СуммаВыручки)", "ОбщийИтог") * 100
  ИНАЧЕ 0
КОНЕЦ

Как писал выше, возникает сложность при наличии дополнительных группировок
5 aleks_default
 
23.11.15
12:45
для разных группировок нужно создавать разные ресурсы (Расчитывать по)
6 vi0
 
23.11.15
12:45
(2) расскажи, как рентабельность считал?
7 vi0
 
23.11.15
12:46
(5) делал так, сложность не в этом
см выше
8 Гёдза
 
23.11.15
12:47
(4) Лучше разные ресурсы делать с разным рассчитать по
9 aleks_default
 
23.11.15
12:50
В любом случае нужно ограничивать возможности пользователя по добавлению ЛЮБЫХ групировок и т.д. Лучше выяснить какие группировки они точно будут использовать, а какие никогда не будут. И затачивать отчет под это. Полной универсальности добиться можно, но затраты человеко/часов того не стоят.
10 vi0
 
23.11.15
13:00
(9) этот вопрос решен
11 aleks_default
 
23.11.15
13:01
(10) тогда в чем проблема?
12 vi0
 
23.11.15
13:04
(11) например, как рассчитать рентабельность бизнеса за февраль
из примера скриншота
13 aleks_default
 
23.11.15
14:11
Не доступны скрины на работе. Можно своими словами?
14 vi0
 
23.11.15
14:53
(13) Пока что задачу сузил до такой формулировки:
Как посчитать итог ресурса в рамках определенной горизонтальной группировки верхнего уровня.
Например есть группировки:
ПериодМесяц
---Маржинальная прибыль
-------Рентабельность продаж
---Чистая прибыль
------Рентабельность бизнеса
(еще статьи на самом нижнем уровне)

Проблема: "Чистая прибыль" не вычисляется, если ПериодМесяц является горизонтальной группировкой.
считаю так: ВычислитьВыражение("СУММА(ЧистаяПрибыль)", "ПериодМесяц")
15 aleks_default
 
23.11.15
15:54
Не совсем въехал почему не вычисляется? Тебе нужно нечто подобное?
http://img.donnet.ru/i/2015/11/23/cd893ab.png
16 vi0
 
23.11.15
16:06
(15) да, в общем структура такая
17 vi0
 
23.11.15
16:11
(15) не знаю почему не вычисляется
встречал несколько веток, что это фича скд
18 aleks_default
 
23.11.15
16:22
Я в вычислитьвыражение не указывал второй параметр(имя группировки). Добавил два раза один и тот же ресурс с разными формулами расчета и в расчитыватьПо галками поставил для каких группировок эту формулу применять.
Просто например ВычислитьВыражение("Сумма(Сумма)",,,"Первая","Текущая").
19 aleks_default
 
23.11.15
16:24
В настройках таблица с группировками в колонках  - Период.
20 aleks_default
 
23.11.15
16:24
Все работает.
У тебя та же структура.
21 vi0
 
24.11.15
06:01
(20) у меня такая структура (выше немного неточное ее показал)
------Маржинальная прибыль
---Рентабельность продаж
------Чистая прибыль
---Рентабельность бизнеса

Т.е. групппировка рентабельности сбивает нарастающий итог. А так как ты говоришь - работает. Попробую рентабельность вынести на один уровень с прибылями.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.