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


Разрядность для агрегатных функций

Разрядность для агрегатных функций
Я
   merlin789
 
10.07.18 - 15:53
Добрый день. Прошу помощи со следующей проблемой:
Есть запрос в завершении которого я формирую итоги по строкам агрегатной функцией Среднее. Проблема в том, что для этой функции нет возможности указать разрядность, и в некоторых строках возникают неприлично длинные значения дробной части. Отчет я формирую запросом и далее вывожу результат в макет. Как ограничить разрядность выводимых значений. Знаю в скд есть возможность задать представление для выводимых значений. Но как быть, если запрос после выполнения сразу выводится в макет.
Вот так выглядит итоговая часть запроса:

        УПОРЯДОЧИТЬ ПО
                    ОстаткиСЦеной.Номенклатура
                ИТОГИ
                    СУММА(Х),
                    СУММА(С),
                    СУММА(П),
                    СРЕДНЕЕ(ЦенаХ),
                    СРЕДНЕЕ(ЦенаС),
                    СРЕДНЕЕ(ЦенаП),
                    СУММА(ВПути),
                    СРЕДНЕЕ(ЦенаВПути)
                ПО
                    Номенклатура,Склад
Подскажите где почитать или подсмотреть как это реализовать?
 
 
   Cyberhawk
 
1 - 10.07.18 - 15:58
Поместить в ВТ, далее ВЫРАЗИТЬ
   Cyberhawk
 
2 - 10.07.18 - 15:58
Хотя с итогами в ВТ не поместишь, ога
   merlin789
 
3 - 10.07.18 - 15:59
Вот-вот, эта мысль уже приходила..
   Cyberhawk
 
4 - 10.07.18 - 16:00
Ну так значит при выводе в макет обрабатывай / округляй
   RomanYS
 
5 - 10.07.18 - 16:01
"Но как быть, если запрос после выполнения сразу выводится в макет."

Что значит "сразу"? В СКД есть представления, оформление и прочее. В обычном макете есть формат вывода. Если обработка выборки кодом - вообще деай что хочешь: округляй, форматируй.
   merlin789
 
6 - 10.07.18 - 16:03
(5) СКД я не использую, формирую запросом таблицу, получаю общий макет и вывожу в него
   dezss
 
7 - 10.07.18 - 16:03
(6) а как выводишь?
   merlin789
 
8 - 10.07.18 - 16:04
Пока ВыборкаНоменклатура.Следующий() Цикл
        ОбластьНоменклатура.Параметры.Заполнить(ВыборкаНоменклатура);
        ОбластьНоменклатура.Параметры.ИтогКоличество=ВыборкаНоменклатура.Х+ВыборкаНоменклатура.С+ВыборкаНоменклатура.П;
        ТабДок.Вывести(ОбластьНоменклатура, ВыборкаНоменклатура.Уровень());
        ВыборкаСклады = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Склад");
        Пока ВыборкаСклады.Следующий() Цикл
            ОбластьСклад.Параметры.Заполнить(ВыборкаСклады);
            ТабДок.Вывести(ОбластьСклад, ВыборкаСклады.Уровень());
            ВыборкаДетальныеЗаписи=ВыборкаСклады.Выбрать();
            Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
            ОбластьДетальныхЗаписей.Параметры.ИтогКоличество=ВыборкаДетальныеЗаписи.Х+ВыборкаДетальныеЗаписи.С+ВыборкаДетальныеЗаписи.П;
            ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
            КонецЦикла;
        КонецЦикла;


    КонецЦикла;
   RomanYS
 
9 - 10.07.18 - 16:05
(6) Формат ячейки в макете прекрасно решает твою проблему.
   dezss
 
10 - 10.07.18 - 16:09
(8) ОбластьНоменклатура.Параметры.ЦенаХ = Цел(ВыборкаНоменклатура.ЦенаХ*100)/100
 
 Рекламное место пустует
   Малыш Джон
 
11 - 10.07.18 - 16:09
(9) +1

формат - он не в запросе, формат, он при выводе
   merlin789
 
12 - 10.07.18 - 16:09
(9) Даже с указанием формата ячейки ситуация не меняется.
Вот результат одной из групповых ячеек собранной из 20 строк 18 739,596333333333333333333333333333333333
   dezss
 
13 - 10.07.18 - 16:10
(10) + ну или округлять, если так будет кошерней
   RomanYS
 
14 - 10.07.18 - 16:21
(12) Формат "ЧДЦ=2" будет показывать строго два знака после запятой независимо от того, что было в исходном значении.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Независимо от того, куда вы едете — это в гору и против ветра!
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует