Hello All.
Не могу разобраться с вычисляемыми полями в СКД.
Суть проблемы есть макет СКД, где используется вычисляемое поле "Цена". В макете указано выражение для его вычисления Стоимость/Количество. В макете есть группировка по подразделениях. В результате выполнения получаем Вычисление по каждому элементу в иерархии группировки после чего значение Цена в группе суммируется по элементам (файл est). А мне нужно значение Цена получить только в группе а элементах показать пусто (файл nado).
(11) v0v, Возникла маленькая неувязочка - при попытке получить расшифровку выдавало ошибку и поэтому пришлось изменить функцию в выражении ресурса
на вот эту
ВычислитьВыражение("Сумма(Стоимость)/Выбор Когда Сумма(Количество)=0 Тогда 1 Иначе Сумма(Количество) Конец
","Подразделение","Группировка")
(10) -FeNiX-, Оказывается, Никаких запросов не надо модифицировать, это тоже СКД!
Не скажу что все просто но все же я это сделал.
Вычисляемое поле Цена по выражению Стоимость/Количество оставил и в ресурсах врописал выражение вместо Сумма(Цена)
Вот такую формулу:
Функция Вычислить предназначена для вычисления выражения в контексте некоторой группировки. Функция имеет следующие параметры:
· Выражение – строка, содержащая вычисляемое выражение;
· Группировка – строка, содержащая имя группировки, в контексте которой необходимо вычислить выражение. В случае если в качестве имени группировки используется пустая строка, вычисление будет выполнено в контексте текущей группировки. В случае если в качестве имени группировки будет использована строка ОбщийИтог, вычисление будет выполнено в контексте общего итога. В остальных случаях вычисление будет выполняться в контексте родительской группировки с таким именем.
· Тип расчета — строка, В случае если данный параметр имеет значение ОбщийИтог, выражение будет вычисляться для всех записей группировки. В случае если значение параметра Группировка, значения будут вычисляться для текущей групповой записи группировки. Например:
(3) -FeNiX-, Картинка с "nado" находится в посте номер (2).
пробовал в ресурсах для поля Цена (Выражение - Сумма=(Цена)) устанавливать значение в "Рассчитывать по " равным "Подразделение" - результат тот же что и без этого значение.
Тогда на вкладке "Настройки" нужно выбрать самую подробную групировку (по умолчанию называэться "детальные записи")
На панели внизу выбрать вкладку "Выбранные поля" и удалить поле "цена".
Но очень важно выбрать правильную группировку!!!
(5) -FeNiX-, Вид получил правильный но вычисления неправильные.
Если посмотреть на рисунок с поста номер (1) то там видно что сначала вычисляется цена по каждому исполнителю а потом она суммируется в группе. А нужно значение как показано в рисунке поста номер (2) вычислять только по групповому значению Сумма(Стоимость)/Сумма(Количество). Но если так записать в выражении то выдаст ошибку использования двойной агрегационной функции в "Ресурсах".
(8) -FeNiX-, Значит получается что чистыми средствами СКД этого сделать нельзя и придется менять запрос.
ВЫБРАТЬ
ПродажиОбороты.Подразделение КАК Подразделение,
ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
ПродажиОбороты.КоличествоОборот КАК КоличествоОборот,
ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот,
ПродажиОбороты.Регистратор КАК Регистратор,
ПродажиОбороты.Регистратор.Исполнитель КАК Исполнитель
{ВЫБРАТЬ
КоличествоОборот,
СтоимостьОборот,
Регистратор}
ИЗ
РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Регистратор, {(Подразделение).*, (Номенклатура.НоменклатурнаяГруппа).* КАК НоменклатурнаяГруппа, (ДокументПродажи).* КАК Регистратор}) КАК ПродажиОбороты
ГДЕ
НЕ ПродажиОбороты.Подразделение В ИЕРАРХИИ (&Подраздел)
Так сразу правильный запрос не могу сообразить.
Но суть в том, чтобы в запросе уже получить правильные значения цены. И потом в отчете оно будет правильно отображаться.
И да, это стандартные средства СКД. Просто идея состоит в том, чтобы получить данные откуда-то. А СКД может только их сгрупировать.
(10) -FeNiX-, Оказывается, Никаких запросов не надо модифицировать, это тоже СКД!
Не скажу что все просто но все же я это сделал.
Вычисляемое поле Цена по выражению Стоимость/Количество оставил и в ресурсах врописал выражение вместо Сумма(Цена)
Вот такую формулу:
Функция Вычислить предназначена для вычисления выражения в контексте некоторой группировки. Функция имеет следующие параметры:
· Выражение – строка, содержащая вычисляемое выражение;
· Группировка – строка, содержащая имя группировки, в контексте которой необходимо вычислить выражение. В случае если в качестве имени группировки используется пустая строка, вычисление будет выполнено в контексте текущей группировки. В случае если в качестве имени группировки будет использована строка ОбщийИтог, вычисление будет выполнено в контексте общего итога. В остальных случаях вычисление будет выполняться в контексте родительской группировки с таким именем.
· Тип расчета — строка, В случае если данный параметр имеет значение ОбщийИтог, выражение будет вычисляться для всех записей группировки. В случае если значение параметра Группировка, значения будут вычисляться для текущей групповой записи группировки. Например:
(11) v0v, Возникла маленькая неувязочка - при попытке получить расшифровку выдавало ошибку и поэтому пришлось изменить функцию в выражении ресурса
на вот эту
ВычислитьВыражение("Сумма(Стоимость)/Выбор Когда Сумма(Количество)=0 Тогда 1 Иначе Сумма(Количество) Конец
","Подразделение","Группировка")
Пробовал ввести "Вычислить ..." в колонку "Выражение" на вкладке "Вычисляемые поля" - не помогло.
Взлетело когда поместил в колонку "Выражение" на вкладке "Ресурсы".
Группировку задал пустую, так как если указывал название головной, то почему-то и на подчиненных группировках выводилось то же значение.
Теперь выводится соотношение в процентах и суммарно по подразделению, и конкретно по контрагенту.
Вычислить("Сумма(ОтгрузокНеПоГрафику)/Сумма(ОтгрузокВсего) * 100","")