Hello All.
Не могу разобраться с вычисляемыми полями в СКД.
Суть проблемы есть макет СКД, где используется вычисляемое поле "Цена". В макете указано выражение для его вычисления Стоимость/Количество. В макете есть группировка по подразделениях. В результате выполнения получаем Вычисление по каждому элементу в иерархии группировки после чего значение Цена в группе суммируется по элементам (файл est). А мне нужно значение Цена получить только в группе а элементах показать пусто (файл nado).
---
v0v, Возникла маленькая неувязочка - при попытке получить расшифровку выдавало ошибку и поэтому пришлось изменить функцию в выражении ресурса
на вот эту

```1c
    ВычислитьВыражение("Сумма(Стоимость)/Выбор Когда Сумма(Количество)=0 Тогда 1 Иначе Сумма(Количество) Конец
    ","Подразделение","Группировка")
```

Мануал по этой функции можно взять ОТСЮДА
---
-FeNiX-, Оказывается, Никаких запросов не надо модифицировать, это тоже СКД!
Не скажу что все просто но все же я это сделал.
Вычисляемое поле Цена по выражению Стоимость/Количество оставил и в ресурсах врописал выражение вместо Сумма(Цена)
Вот такую формулу:

```1c
    Вычислить("Сумма(Стоимость)/Сумма(Количество)","Группировка")
```

И получил желаемый результат!

Процитирую документацию:

Функция Вычислить предназначена для вычисления выражения в контексте некоторой группировки. Функция имеет следующие параметры:
· Выражение – строка, содержащая вычисляемое выражение;
· Группировка – строка, содержащая имя группировки, в контексте которой необходимо вычислить выражение. В случае если в качестве имени группировки используется пустая строка, вычисление будет выполнено в контексте текущей группировки. В случае если в качестве имени группировки будет использована строка ОбщийИтог, вычисление будет выполнено в контексте общего итога. В остальных случаях вычисление будет выполняться в контексте родительской группировки с таким именем.
· Тип расчета — строка, В случае если данный параметр имеет значение ОбщийИтог, выражение будет вычисляться для всех записей группировки. В случае если значение параметра Группировка, значения будут вычисляться для текущей групповой записи группировки. Например:

Сумма(Продажи.СуммаОборот) / Вычислить(«Сумма(Продажи.СуммаОборот)», «ОбщийИтог»)

В данном примере в результате получится отношение суммы по полю «Продажи.СуммаОборот» записи группировки к сумме того же поля во всей компоновке.
---
А надо вот такой вид.
---
Что-то не видно файла nado
Но вообще в макете компоновки данных на вкладке ресурси у каждого ресурса есть свойство "Рассчитывать по..."
---
-FeNiX-, Картинка с "nado" находится в посте номер (2).
пробовал в ресурсах для поля Цена (Выражение - Сумма=(Цена)) устанавливать значение в "Рассчитывать по " равным "Подразделение" - результат тот же что и без этого значение.
---
Тогда на вкладке "Настройки" нужно выбрать самую подробную групировку (по умолчанию называэться "детальные записи")
На панели внизу выбрать вкладку "Выбранные поля" и удалить поле "цена".
Но очень важно выбрать правильную группировку!!!
---
-FeNiX-,
и как тогда он получит ИТОГО по колонке Цена?
---
-FeNiX-, Вид получил правильный но вычисления неправильные.
Если посмотреть на рисунок с поста номер (1) то там видно что сначала вычисляется цена по каждому исполнителю а потом она суммируется в группе. А нужно значение как показано в рисунке поста номер (2) вычислять только по групповому значению Сумма(Стоимость)/Сумма(Количество). Но если так записать в выражении то выдаст ошибку использования двойной агрегационной функции в "Ресурсах".
---
v0v, Для этого нужно переписать запрос СКД.
Можете его предоставить?
---
-FeNiX-, Значит получается что чистыми средствами СКД этого сделать нельзя и придется менять запрос.

```1c
    ВЫБРАТЬ
    ПродажиОбороты.Подразделение КАК Подразделение,
    ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
    ПродажиОбороты.КоличествоОборот КАК КоличествоОборот,
    ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот,
    ПродажиОбороты.Регистратор КАК Регистратор,
    ПродажиОбороты.Регистратор.Исполнитель КАК Исполнитель
    {ВЫБРАТЬ
    КоличествоОборот,
    СтоимостьОборот,
    Регистратор}
    ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Регистратор, {(Подразделение).*, (Номенклатура.НоменклатурнаяГруппа).* КАК НоменклатурнаяГруппа, (ДокументПродажи).* КАК Регистратор}) КАК ПродажиОбороты
    ГДЕ
    НЕ ПродажиОбороты.Подразделение В ИЕРАРХИИ (&Подраздел)
```
---
Так сразу правильный запрос не могу сообразить.
Но суть в том, чтобы в запросе уже получить правильные значения цены. И потом в отчете оно будет правильно отображаться.
И да, это стандартные средства СКД. Просто идея состоит в том, чтобы получить данные откуда-то. А СКД может только их сгрупировать.
---
-FeNiX-, Оказывается, Никаких запросов не надо модифицировать, это тоже СКД!
Не скажу что все просто но все же я это сделал.
Вычисляемое поле Цена по выражению Стоимость/Количество оставил и в ресурсах врописал выражение вместо Сумма(Цена)
Вот такую формулу:

```1c
    Вычислить("Сумма(Стоимость)/Сумма(Количество)","Группировка")
```

И получил желаемый результат!

Процитирую документацию:

Функция Вычислить предназначена для вычисления выражения в контексте некоторой группировки. Функция имеет следующие параметры:
· Выражение – строка, содержащая вычисляемое выражение;
· Группировка – строка, содержащая имя группировки, в контексте которой необходимо вычислить выражение. В случае если в качестве имени группировки используется пустая строка, вычисление будет выполнено в контексте текущей группировки. В случае если в качестве имени группировки будет использована строка ОбщийИтог, вычисление будет выполнено в контексте общего итога. В остальных случаях вычисление будет выполняться в контексте родительской группировки с таким именем.
· Тип расчета — строка, В случае если данный параметр имеет значение ОбщийИтог, выражение будет вычисляться для всех записей группировки. В случае если значение параметра Группировка, значения будут вычисляться для текущей групповой записи группировки. Например:

Сумма(Продажи.СуммаОборот) / Вычислить(«Сумма(Продажи.СуммаОборот)», «ОбщийИтог»)

В данном примере в результате получится отношение суммы по полю «Продажи.СуммаОборот» записи группировки к сумме того же поля во всей компоновке.
---
v0v, Возникла маленькая неувязочка - при попытке получить расшифровку выдавало ошибку и поэтому пришлось изменить функцию в выражении ресурса
на вот эту

```1c
    ВычислитьВыражение("Сумма(Стоимость)/Выбор Когда Сумма(Количество)=0 Тогда 1 Иначе Сумма(Количество) Конец
    ","Подразделение","Группировка")
```

Мануал по этой функции можно взять ОТСЮДА
---
Делаю все так же вроде. Смотрю инфу отсюда , но получаю ошибку, что вычисляемое значение не найдено. что может быть не так?
---
Если в отчет добавляете <детальные записи>, нужно на вкладке "Вычисляемые поля" в "Выражение" заполнить 0
---
Всем доброго дня! Мануал недоступен. Можно выложить куда-нибудь еще?
---
KTo,
тут есть частично
http://infostart.ru/public/86764/
---
Пробовал ввести "Вычислить ..." в колонку "Выражение" на вкладке "Вычисляемые поля" - не помогло.
Взлетело когда поместил в колонку "Выражение" на вкладке "Ресурсы".
Группировку задал пустую, так как если указывал название головной, то почему-то и на подчиненных группировках выводилось то же значение.
Теперь выводится соотношение в процентах и суммарно по подразделению, и конкретно по контрагенту.
Вычислить("Сумма(ОтгрузокНеПоГрафику)/Сумма(ОтгрузокВсего) * 100","")