0
Сильф
29.09.15
✎
13:26
|
Коллеги, растолкуйте, пожалуйста, всю голову себе сломал уже.
СКД. В одной из группировок нужно выдавать значение = значение родительской группировки (неважно, какая она) * некий коэффициент. В описание функции ВычислитьВыражение говорится буквально следующее:
ВычислитьВыражение(Выражение, Группировка, ТипРасчета, Начало, Конец, Сортировка, ИерархическаяСортировка, ОбработкаОдинаковыхЗначенийПорядка)
Параметры:
Выражение. Тип Строка. Содержит вычисляемое выражение;
Группировка. Тип Строка. Содержит имя группировки, в контексте которой необходимо вычислить выражение. В случае если в качестве имени группировки используется пустая строка, вычисление будет выполнено в контексте текущей группировки. В случае если в качестве имени группировки будет использована строка ОбщийИтог, вычисление будет выполнено в контексте общего итога. В остальных случаях вычисление будет выполняться в контексте родительской группировки с таким именем.
То есть, чтобы указать, что вычислять нужно от родительской группировки, мне обязательно нужно задавать её имя? А если пользователь поменяет структуру отчета? (так и сделал, цифры "поехали", ага) Что делать, куды бечь?
|
|
2
Сильф
29.09.15
✎
13:40
|
Пример:
Подразделение
+----Проект
+-------День
Я подразумеваю, что:
"День" - текущая группировка, в ней нужно считать значение
"Проект" - "родительская" группировка
Если мы поменяем структуру:
Проект
+----Подразделение
+-------День
то для группировки "День" родительской будет "Подразделение", и значение должно считаться от значения в этой группировке
у меня сейчас написано
ВычислитьВыражение("--выражение--", "Проект") * (Коэффициент * 0.01)
Пробовал убирать имя группировки - не считает тогда вообще ничего.
|
|
9
Сильф
29.09.15
✎
20:33
|
В общем, кому интересно - обошёл проблему следующим образом. В процедуре "ПриКомпоновкеРезультата" выясняю, какая группировка в текущих настройках является родительской у груп-ки "День", и на лету в схеме компоновки 1. убиваю все поля итогов (ресурсы), выражения которых нужно поменять; 2. добавляю новые поля итогов, с новыми выражениями. На первый взгляд, похоже на извращение, но код достаточно компактен, хотя и не универсален.
|
|