Свои итоги в СКД или расчет среднего значения






Описание настройки СКД для вывода в отчете среднего значения ресурса расчитаного на основе итогов других столбцов.

Разберем пример:

Клиенту отгружают несколько единиц товара с разной скидкой. Требуется вывести в отчете значения скидок по каждому товару и расчитать среднюю скидку. Создадим отчет на СКД.
Для всех полей по которым требуется выводить итоги зададим на вкладке «Ресурсы» выражение (метод) их расчета. Для Поля «Скидка» зададим метод расчета как «Среднее».

 

Выводим отчет:

 Как видно итог по полю «Скидка» расчитан как среднее арифметическое значений поля, т.е. сумма всех значений деленное на количество значений. Но т.к. объемы отгружаемого товара с разной скидкой различны, то средняя скидка может быть расчитана и другим способом: например как отношение общей суммы отгруженного товара с учетом скидки к общей сумме отгруженного товара. Но тут возникает вопрос: если для расчета значений полей детальных записей в СКД можно прописать формулу, то итоги расчитываются автоматически по выражению указанному на вкладке «Ресурсы», а там, как мы видели ранее, «Среднее» расчитается как среднее арифметическое выводимых значений, как же в этом случае расчитать итог в данной колонке по собственной формуле?
На самом деле это не сложно. Для этого скорректируем наш отчет, добавив в него необходимые поля, которые будут учавствовать в расчете, в нашем случае это «СуммаСоСкидкой» и «СуммаПоПрайсу».

Для Того чтобы СКД «научить» выводить наши итоги проделываем следующие шаги:
1. на вкладке «Настройки» для группировки «» присвоим имя, например «ИтогСКД», для этого вызываем контекстное меню для группировки и нажимаем «присвоить имя»;

 

2. на вкладке «Макеты» добавляем «макет заголовка группировки», где выбираем ранее назначенное имя «ИтогСКД»;

 

3. рисуем строку макета, где все итоги, расчет которых нас устривает оставляем как есть, а для расчета среднего процента скидки пишем формулу для расчета;

Если все здели верно, то при выводе отчета под ним будут выведены две строки итогов, сначала та, что формируется автоматически, затем созданная Вами.

 Для того что оставить вывод только вашей строки итогов необходимо на вкладке «Настройки» в разделе «Другие настройки» вывода макета, отключить вывод для «Расположение общих итогов по горизонтали» и  «Расположение общих итогов по вертикали» 

13 Comments

  1. TrinitronOTV

    большое спасибо за предоставленный материал о возможностях системы компоновки данных, пригодится в дальнейшей работе…

    Reply
  2. Поручик

    Меня терзают смутные сомнения…

    Где же я это видел раньше?

    Reply
  3. anig99

    Почесал левой ногой правое ухо

    Reply
  4. Поручик

    (3) А чё, мне понравилось.

    Reply
  5. Поручик

    (3) Предлагаешь вычисляемые поля?

    Reply
  6. Поручик

    (3) Скажи, как правильно чесать правое ухо и я так же буду делать.

    Reply
  7. anig99

    (4) вычисляемые поля, ресурсы с итогами на разных уровнях, пользовательские поля — более простые и универсальные решения. Макет сложнее менять и он может поплыть, если менять схему отчета пользовательском режиме

    Reply
  8. kiros

    Вообще для подобных задач я бы использовал ресурсы как в выражении макета написано, но с суммами и на любом уровне считается одинаково.

    Reply
  9. Natain14

    Спасибо за материал! Очень помогло!

    Reply
  10. Serge_ASB

    Данное решение помогло.

    А вот будет ли разница, если группировок несколько, и если нужно результат суммирования в одной группировке использовать в вышестоящей, например, итоговый процент по номенклатуре использовать для расчета по группировке по складам, или по клиентам-покупателям?

    Подобная задачка есть. Пока размышляю, с какого боку к ней подойти, если решить в СКД.

    Reply
  11. kiv1c

    ОЧЕНЬ помогла статья, спасибо

    Reply
  12. Mialex

    Получилось сделать проще! Надо добавить свое «вычисляемое поле», например, поле средняя цена , выражение = сумма/количество, а затем добавить его в ресурсы. Но! В колонке «Выражение» в ресурсах прописать Сумма(сумма)/сумма(количество). И все работает)

    Reply
  13. max_zhilin

    (12) Можно еще проще: сумма / количество

    Агрегаты не нужны, если по строке считаешь. Но в общих итогах агрегаты понадобятся.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *