Доброго дня!!!!
Манагеры изъявили желание отказаться от екселя и в одном диком отчете увидеть колонку Доли.

Вот запрос сильно упрощенный, надо как то рассчитать долю от итога по Сумме.

ВЫБРАТЬ
 ВР_ПродажиОбороты.Номенклатура КАК Номенклатура,
 ВР_ПродажиОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
 ВР_ПродажиОбороты.КоличествоОборот КАК КоличествоОборот,
 ВР_ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот
ИЗ
 РегистрНакопления.ВР_Продажи.Обороты(&ДатаНачала, &ДатаКонца, , ) КАК ВР_ПродажиОбороты
ИТОГИ
 СУММА(КоличествоОборот),
 СУММА(СтоимостьОборот)
ПО
 ВР_ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа ТОЛЬКО ИЕРАРХИЯ,
 Номенклатура,
 ХарактеристикаНоменклатуры КАК ИтогиПоХарактеристикам
---
Доли-то от итогов рассчитать дело нехитрое:

```1c
    ВЫБРАТЬ
    ВР_ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
    ВР_ПродажиОбороты.Номенклатура КАК Номенклатура,
    ВР_ПродажиОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ВР_ПродажиОбороты.КоличествоОборот КАК КоличествоОборот,
    ВР_ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот
    ПОМЕСТИТЬ тИсх
    ИЗ
    РегистрНакопления.Продажи.Обороты(, , , ) КАК ВР_ПродажиОбороты
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    тИсх.НоменклатурнаяГруппа,
    СУММА(тИсх.СтоимостьОборот) КАК СтоимостьОборот
    ПОМЕСТИТЬ тСуммыНомГр
    ИЗ
    тИсх КАК тИсх

    СГРУППИРОВАТЬ ПО
    тИсх.НоменклатурнаяГруппа
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    тИсх.Номенклатура,
    СУММА(тИсх.СтоимостьОборот) КАК СтоимостьОборот
    ПОМЕСТИТЬ тСуммыНомен
    ИЗ
    тИсх КАК тИсх

    СГРУППИРОВАТЬ ПО
    тИсх.Номенклатура
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    СУММА(тИсх.СтоимостьОборот) КАК СтоимостьОборот
    ПОМЕСТИТЬ тСуммыОбщ
    ИЗ
    тИсх КАК тИсх
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    тИсх.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
    тИсх.Номенклатура КАК Номенклатура,
    тИсх.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    тИсх.КоличествоОборот КАК КоличествоОборот,
    тИсх.СтоимостьОборот КАК СтоимостьОборот,
    100 * тСуммыНомГр.СтоимостьОборот / тСуммыОбщ.СтоимостьОборот КАК ДоляНомГр,
    100 * тСуммыНомен.СтоимостьОборот / тСуммыОбщ.СтоимостьОборот КАК ДоляНомен,
    100 * тИсх.СтоимостьОборот / тСуммыОбщ.СтоимостьОборот КАК ДоляОбщ
    ИЗ
    тИсх КАК тИсх
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ тСуммыНомГр КАК тСуммыНомГр
    ПО тИсх.НоменклатурнаяГруппа = тСуммыНомГр.НоменклатурнаяГруппа
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ тСуммыНомен КАК тСуммыНомен
    ПО тИсх.Номенклатура = тСуммыНомен.Номенклатура
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ тСуммыОбщ КАК тСуммыОбщ
    ПО (ИСТИНА)

    УПОРЯДОЧИТЬ ПО
    НоменклатурнаяГруппа,
    Номенклатура,
    ХарактеристикаНоменклатуры
    ИТОГИ
    СУММА(КоличествоОборот),
    СУММА(СтоимостьОборот),
    МАКСИМУМ(ДоляНомГр),
    МАКСИМУМ(ДоляНомен),
    МАКСИМУМ(ДоляОбщ)
    ПО
    НоменклатурнаяГруппа,
    Номенклатура
```

Правда как сделать вывод значения из той или иной колонки (ДоляНомГр,ДоляНомен,ДоляОбщ) в зависимости от "вложенности" итогов в универсальном отчете (что это?) я не очень представляю.

Разве что все три колонки показывать:
---
Да, именно, что?

```1c
    ВР_ПродажиОбороты.КоличествоОборот/СУММА(ВР_ПродажиОбороты.КоличествоОборот)
```

даст тебе доли относительно общей суммы, как написали в (2).

Если тебе нужны доли от подитогов, то как в (3), кури СКД.
---
Так рассчитай, правой кнопк
ой по запросу - констроктор запроса, там добавь вычисляемое поле, например:
---
Всё хорошо, но... не хорошо. Обрати внимание, итог явно считается не от суммы ВСЕГО, а от суммы ПО КАТЕГОРИИ.
---
AFAIK, это только в СКД делать, и не в запросе, а потом, в описании СКД.
---
Да именно. Формула расчета примерно должна быть такая: КоличествоОборот/Итог(КоличествоОборот)
---
Да, именно, что?

```1c
    ВР_ПродажиОбороты.КоличествоОборот/СУММА(ВР_ПродажиОбороты.КоличествоОборот)
```

даст тебе доли относительно общей суммы, как написали в (2).

Если тебе нужны доли от подитогов, то как в (3), кури СКД.
---
Нужны доли от подитогов.
---
А в СКД наверное в вычисляемых полях копать? В моем случае текст запроса передается в качестве параметра в универсальный. Поэтому до скд тут еще добраться надо.
---
Доли-то от итогов рассчитать дело нехитрое:

```1c
    ВЫБРАТЬ
    ВР_ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
    ВР_ПродажиОбороты.Номенклатура КАК Номенклатура,
    ВР_ПродажиОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ВР_ПродажиОбороты.КоличествоОборот КАК КоличествоОборот,
    ВР_ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот
    ПОМЕСТИТЬ тИсх
    ИЗ
    РегистрНакопления.Продажи.Обороты(, , , ) КАК ВР_ПродажиОбороты
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    тИсх.НоменклатурнаяГруппа,
    СУММА(тИсх.СтоимостьОборот) КАК СтоимостьОборот
    ПОМЕСТИТЬ тСуммыНомГр
    ИЗ
    тИсх КАК тИсх

    СГРУППИРОВАТЬ ПО
    тИсх.НоменклатурнаяГруппа
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    тИсх.Номенклатура,
    СУММА(тИсх.СтоимостьОборот) КАК СтоимостьОборот
    ПОМЕСТИТЬ тСуммыНомен
    ИЗ
    тИсх КАК тИсх

    СГРУППИРОВАТЬ ПО
    тИсх.Номенклатура
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    СУММА(тИсх.СтоимостьОборот) КАК СтоимостьОборот
    ПОМЕСТИТЬ тСуммыОбщ
    ИЗ
    тИсх КАК тИсх
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    тИсх.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
    тИсх.Номенклатура КАК Номенклатура,
    тИсх.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    тИсх.КоличествоОборот КАК КоличествоОборот,
    тИсх.СтоимостьОборот КАК СтоимостьОборот,
    100 * тСуммыНомГр.СтоимостьОборот / тСуммыОбщ.СтоимостьОборот КАК ДоляНомГр,
    100 * тСуммыНомен.СтоимостьОборот / тСуммыОбщ.СтоимостьОборот КАК ДоляНомен,
    100 * тИсх.СтоимостьОборот / тСуммыОбщ.СтоимостьОборот КАК ДоляОбщ
    ИЗ
    тИсх КАК тИсх
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ тСуммыНомГр КАК тСуммыНомГр
    ПО тИсх.НоменклатурнаяГруппа = тСуммыНомГр.НоменклатурнаяГруппа
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ тСуммыНомен КАК тСуммыНомен
    ПО тИсх.Номенклатура = тСуммыНомен.Номенклатура
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ тСуммыОбщ КАК тСуммыОбщ
    ПО (ИСТИНА)

    УПОРЯДОЧИТЬ ПО
    НоменклатурнаяГруппа,
    Номенклатура,
    ХарактеристикаНоменклатуры
    ИТОГИ
    СУММА(КоличествоОборот),
    СУММА(СтоимостьОборот),
    МАКСИМУМ(ДоляНомГр),
    МАКСИМУМ(ДоляНомен),
    МАКСИМУМ(ДоляОбщ)
    ПО
    НоменклатурнаяГруппа,
    Номенклатура
```

Правда как сделать вывод значения из той или иной колонки (ДоляНомГр,ДоляНомен,ДоляОбщ) в зависимости от "вложенности" итогов в универсальном отчете (что это?) я не очень представляю.

Разве что все три колонки показывать:
---
Буду выкручиваться. Сделаю отдельным отчетом, Универсальный отчет - отчет пользователь может сам задать источники данных, группировки, отборы, структуру отчета. Соответственно в него как в Объект можно програмно передать параметры включая текст запроса источника данных.
---
Большое спасибо (9)!