0
serzh44
27.06.14
✎
02:18
|
Расчет некоторого ресурса выполняется глобальной функцией, одним из параметров которой является таблица значений. В качестве таблицы значений необходимо передавать табличную часть элемента справочника, т.е. расчет выполняется для элемента справочника на основании данных табличной части.
Для передачи таблицы значений в глобальную функцию в вычисляемом поле использую новую функцию СКД "ТАБЛИЦАЗНАЧЕНИЙ".
Например, если есть справочник "Маршруты" и в нем табличная часть "Пункты", то запрос набора данных выгладит следующим образом:
ВЫБРАТЬ
Маршруты.Ссылка КАК Маршрут,
Маршруты.Пункты. (Расстояние КАК Расстояние) КАК Пункты
ИЗ
Справочник.Маршруты
То, в вычисляемом поле пишу следующее:
глРасчет(Маршрут, ТАБЛИЦАЗНАЧЕНИЙ(Пункты.Расстояние КАК Расстояние))
В результате для детальных записей все работает как надо, но по группировкам не работает расчет итогов путем суммирования, почему-то выводится максимум.
И вообще, путем долгих проб сделал такой вывод. Если есть вычисляемое поле, выражение которого содержит вызов глобальной функции с передачей в качестве одного из параметров таблицы значений, сформированной функцией СКД "ТАБЛИЦАЗНАЧЕНИЙ", то по данному вычисляемому поле не работает суммирование в итогах, почему-то выводится максимум.
А мне нужно выводить в итогах сумму. Может как-то по-другому написать? Такое ощущение, что когда СКД видит функцию "ТАБЛИЦАЗНАЧЕНИЙ", то начинает как-то странно работать.
|
|
2
serzh44
27.06.14
✎
15:50
|
В итогах сумма. Если в итогах написать "МАССИВ(<ИмяВычисляемогоПоле>)", то выводится только одно значение. Т.е. выходит, что СКД "думает", что для расчета итогов по группировке есть только одно значение.
Визуально это выглядит так: есть 2 группировки. На 2 уровне две строки со значениями 10 и 15. На 1 уровне в итогах будет 15. При этом используется функция "СУММА".
|
|