СКД. Расчет рентабельности для произвольных группировок #758923


#0 by vi0
Задача - разработать отчет о прибылях и убытках Нарастающим итогом рассчитываются - Маржинальная прибыль (состоит из статей по продажам) - Чистая прибыль (Маржинальная прибыль - прочие статьи) Рентабельность продаж = Маржинальная прибыль / Выручка * 100 Рентабельность бизнеса = Чистая прибыль / Выручка * 100 Как реализовать подобное на СКД? Особенно с учетом, что есть горизонтальные группировки, и они могут быть разными: периоды, подразделения итд Конкретно сложность возникает расчета при наличии дополнительных группировок: горизонтальных или дополнительных вертикальных (например, расчет рентабельности по подразлделению) Сейчас склоняюсь к разработке кодом без СКД
#1 by los_hooliganos
Варианта 2. а. Посчитать нарастающий итог запросом. б. Использовать Вычисляемые поля.
#2 by aleks_default
Ну я такое делал на СКД.
#3 by los_hooliganos
Для любителей экстрима можно сделать все функциональным программированием.
#4 by vi0
использовал вычисляемые поля что-то типа ВЫБОР КОГДА ГруппировкаРентабельность = &РентабельностьСделок ТОГДА ВычислитьВыражение("СУММА(МаржинальнаяПрибыль)", "ОбщийИтог") / ВычислитьВыражение("СУММА(СуммаВыручки)", "ОбщийИтог") * 100   КОГДА ГруппировкаРентабельность = &РентабельностьБизнеса ТОГДА ВычислитьВыражение("СУММА(ЧистаяПрибыль)", "ОбщийИтог") / ВычислитьВыражение("СУММА(СуммаВыручки)", "ОбщийИтог") * 100 КОНЕЦ Как писал выше, возникает сложность при наличии дополнительных группировок
#5 by aleks_default
для разных группировок нужно создавать разные ресурсы (Расчитывать по)
#6 by vi0
расскажи, как рентабельность считал?
#7 by vi0
делал так, сложность не в этом см выше
#8 by Гёдза
Лучше разные ресурсы делать с разным рассчитать по
#9 by aleks_default
В любом случае нужно ограничивать возможности пользователя по добавлению ЛЮБЫХ групировок и т.д. Лучше выяснить какие группировки они точно будут использовать, а какие никогда не будут. И затачивать отчет под это. Полной универсальности добиться можно, но затраты человеко/часов того не стоят.
#10 by vi0
этот вопрос решен
#11 by aleks_default
тогда в чем проблема?
#12 by vi0
например, как рассчитать рентабельность бизнеса за февраль из примера скриншота
#13 by aleks_default
Не доступны скрины на работе. Можно своими словами?
#14 by vi0
Пока что задачу сузил до такой формулировки: Как посчитать итог ресурса в рамках определенной горизонтальной группировки верхнего уровня. Например есть группировки: ------Рентабельность бизнеса (еще статьи на самом нижнем уровне) Проблема: "Чистая прибыль" не вычисляется, если ПериодМесяц является горизонтальной группировкой. считаю так: ВычислитьВыражение("СУММА(ЧистаяПрибыль)", "ПериодМесяц")
#15 by aleks_default
Не совсем въехал почему не вычисляется? Тебе нужно нечто подобное?
#16 by vi0
да, в общем структура такая
#17 by vi0
не знаю почему не вычисляется встречал несколько веток, что это фича скд
#18 by aleks_default
Я в вычислитьвыражение не указывал второй параметр(имя группировки). Добавил два раза один и тот же ресурс с разными формулами расчета и в расчитыватьПо галками поставил для каких группировок эту формулу применять. Просто например ВычислитьВыражение("Сумма(Сумма)",,,"Первая","Текущая").
#19 by aleks_default
В настройках таблица с группировками в колонках  - Период.
#20 by aleks_default
Все работает. У тебя та же структура.
#21 by vi0
у меня такая структура (выше немного неточное ее показал) Т.е. групппировка рентабельности сбивает нарастающий итог. А так как ты говоришь - работает. Попробую рентабельность вынести на один уровень с прибылями.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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