Всем добрый день. Необходимо для одного отчета изменить запрос чтоб он выводил еще одно дополнительное поле. Процент продаж от общего кол-во продаж.

Т.е. мне надо поле Сумма разделить на поле СУММА(сумма) из ИТОГОВ.

В соседней теме мне советовали делать это через временные таблицы, но как я понять вообще не могу. Т.е. что-то помещать в вт1, чт-то в вт2 и уже потом из этих 2-х таблиц выбирать нужные мне поля.

Но как работать с временными таблицами вообще не пойму.

```1c
    ПостроительОтчетаОтчет.Текст =
    "ВЫБРАТЬ
    | Sales.Номенклатура КАК Номенклатура,
    | Sales.Контрагент КАК Контрагент,
    | Sales.ДоговорКонтрагента КАК ДоговорКонтрагента,
    | СУММА(Sales.Количество) КАК Количество,
    | СУММА(Sales.Сумма) КАК Сумма,
    | СРЕДНЕЕ(Sales.Цена) КАК Цена,
    | Sales.Регистратор КАК Регистратор,
    | ВЫРАЗИТЬ(Sales.Сумма - Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)) КАК ПрибыльРуб,
    | ВЫБОР
    | КОГДА Sales.Количество * PrimeCost.ЦенаСебест = 0
    | ТОГДА 0
    | ИНАЧЕ ВЫРАЗИТЬ(Sales.Сумма * 100 / (Sales.Количество * PrimeCost.ЦенаСебест) - 100 КАК ЧИСЛО(15, 2))
    | КОНЕЦ КАК ПрибыльПроцц,
    | PrimeCost.ЦенаСебест КАК ЦенаСебест,
    | ВЫРАЗИТЬ(Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)) КАК СуммаСебест
    |ИЗ
    | (ВЫБРАТЬ
    | ХозрасчетныйОборотыДтКт.СубконтоКт3 КАК Номенклатура,
    | ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК Контрагент,
    | ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК ДоговорКонтрагента,
    | ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК Количество,
    | ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма,
    | ВЫБОР
    | КОГДА ХозрасчетныйОборотыДтКт.КоличествоОборотКт = 0
    | ТОГДА 0
    | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СуммаОборот, 0) / ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК ЧИСЛО(15, 2))
    | КОНЕЦ КАК Цена,
    | ХозрасчетныйОборотыДтКт.Регистратор КАК Регистратор
    | ИЗ
    | РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПер, &КонПер, Регистратор, , , СчетКт = &Сч9001, , Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК Sales
    | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    | ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК Количество,
    | ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма,
    | ХозрасчетныйОборотыДтКт.СубконтоКт1 КАК Номенклатура,
    | ВЫБОР
    | КОГДА ХозрасчетныйОборотыДтКт.КоличествоОборотКт = 0
    | ТОГДА 0
    | ИНАЧЕ ХозрасчетныйОборотыДтКт.СуммаОборот / ХозрасчетныйОборотыДтКт.КоличествоОборотКт
    | КОНЕЦ КАК ЦенаСебест
    | ИЗ
    | РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
    | &НачПер,
    | &КонПер,
    | Период,
    | СчетДт = &Сч9002
    | ИЛИ СчетДт = &Сч9102,
    | ,
    | СчетКт = &Сч43
    | ИЛИ СчетКт = &Сч4101
    | ИЛИ СчетКт = &Сч4104
    | ИЛИ СчетКт = &Сч10,
    | ,
    | Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК PrimeCost
    | ПО Sales.Номенклатура = PrimeCost.Номенклатура
    |
    |СГРУППИРОВАТЬ ПО
    | Sales.Номенклатура,
    | Sales.Контрагент,
    | Sales.ДоговорКонтрагента,
    | Sales.Регистратор,
    | PrimeCost.ЦенаСебест,
    | ВЫРАЗИТЬ(Sales.Сумма - Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)),
    | ВЫБОР
    | КОГДА Sales.Количество * PrimeCost.ЦенаСебест = 0
    | ТОГДА 0
    | ИНАЧЕ ВЫРАЗИТЬ(Sales.Сумма * 100 / (Sales.Количество * PrimeCost.ЦенаСебест) - 100 КАК ЧИСЛО(15, 2))
    | КОНЕЦ,
    | ВЫРАЗИТЬ(Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2))
    |ИТОГИ
    | СУММА(Количество),
    | СУММА(Сумма),
    | СРЕДНЕЕ(Цена),
    | СУММА(ПрибыльРуб),
    | СРЕДНЕЕ(ПрибыльПроцц),
    | СРЕДНЕЕ(ЦенаСебест),
    | СУММА(СуммаСебест)
    |ПО
    | ОБЩИЕ,
    | Номенклатура,
    | Контрагент,
    | ДоговорКонтрагента,
    | Регистратор";
```
---
Попробуй так

```1c
    ВЫБРАТЬ
    Sales.Номенклатура КАК Номенклатура,
    Sales.Контрагент КАК Контрагент,
    Sales.ДоговорКонтрагента КАК ДоговорКонтрагента,
    СУММА(Sales.Количество) КАК Количество,
    СУММА(Sales.Сумма) КАК Сумма,
    СРЕДНЕЕ(Sales.Цена) КАК Цена,
    Sales.Регистратор КАК Регистратор,
    ВЫРАЗИТЬ(Sales.Сумма - Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)) КАК ПрибыльРуб,
    ВЫБОР
    КОГДА Sales.Количество * PrimeCost.ЦенаСебест = 0
    ТОГДА 0
    ИНАЧЕ ВЫРАЗИТЬ(Sales.Сумма * 100 / (Sales.Количество * PrimeCost.ЦенаСебест) - 100 КАК ЧИСЛО(15, 2))
    КОНЕЦ КАК ПрибыльПроцц,
    PrimeCost.ЦенаСебест КАК ЦенаСебест,
    ВЫРАЗИТЬ(Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)) КАК СуммаСебест,
    СУММА(ВЫБОР
    КОГДА AllSales.Сумма = 0
    ТОГДА 0
    ИНАЧЕ ВЫРАЗИТЬ(Sales.Сумма / AllSales.Сумма * 100 КАК ЧИСЛО(15, 2))
    КОНЕЦ) КАК ПроцентПродаж
    ИЗ
    (ВЫБРАТЬ
    ХозрасчетныйОборотыДтКт.СубконтоКт3 КАК Номенклатура,
    ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК Контрагент,
    ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК ДоговорКонтрагента,
    ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК Количество,
    ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма,
    ВЫБОР
    КОГДА ХозрасчетныйОборотыДтКт.КоличествоОборотКт = 0
    ТОГДА 0
    ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СуммаОборот, 0) / ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК ЧИСЛО(15, 2))
    КОНЕЦ КАК Цена,
    ХозрасчетныйОборотыДтКт.Регистратор КАК Регистратор
    ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПер, &КонПер, Регистратор, , , СчетКт = &Сч9001, , Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК Sales
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК Количество,
    ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма,
    ХозрасчетныйОборотыДтКт.СубконтоКт1 КАК Номенклатура,
    ВЫБОР
    КОГДА ХозрасчетныйОборотыДтКт.КоличествоОборотКт = 0
    ТОГДА 0
    ИНАЧЕ ХозрасчетныйОборотыДтКт.СуммаОборот / ХозрасчетныйОборотыДтКт.КоличествоОборотКт
    КОНЕЦ КАК ЦенаСебест
    ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
    &НачПер,
    &КонПер,
    Период,
    СчетДт = &Сч9002
    ИЛИ СчетДт = &Сч9102,
    ,
    СчетКт = &Сч43
    ИЛИ СчетКт = &Сч4101
    ИЛИ СчетКт = &Сч4104
    ИЛИ СчетКт = &Сч10,
    ,
    Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК PrimeCost
    ПО Sales.Номенклатура = PrimeCost.Номенклатура
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    СУММА(ХозрасчетныйОборотыДтКт.СуммаОборот) КАК Сумма
    ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПер, &КонПер, Регистратор, , , СчетКт = &Сч9001, , Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК AllSales
    ПО (ИСТИНА)

    СГРУППИРОВАТЬ ПО
    Sales.Номенклатура,
    Sales.Контрагент,
    Sales.ДоговорКонтрагента,
    Sales.Регистратор,
    PrimeCost.ЦенаСебест,
    ВЫРАЗИТЬ(Sales.Сумма - Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)),
    ВЫБОР
    КОГДА Sales.Количество * PrimeCost.ЦенаСебест = 0
    ТОГДА 0
    ИНАЧЕ ВЫРАЗИТЬ(Sales.Сумма * 100 / (Sales.Количество * PrimeCost.ЦенаСебест) - 100 КАК ЧИСЛО(15, 2))
    КОНЕЦ,
    ВЫРАЗИТЬ(Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2))
    ИТОГИ
    СУММА(Количество),
    СУММА(Сумма),
    СРЕДНЕЕ(Цена),
    СУММА(ПрибыльРуб),
    СРЕДНЕЕ(ПрибыльПроцц),
    СРЕДНЕЕ(ЦенаСебест),
    СУММА(СуммаСебест)
    ПО
    ОБЩИЕ,
    Номенклатура,
    Контрагент,
    ДоговорКонтрагента,
    Регистратор
```
---
Берете данный запрос без секции ИТОГО, помещаете его во временную таблицу, затем делаете выборку из этой ВТ и левым соединением присоединяете ЕЁ же, но с группировками из вашей секции ИТОГО, со связями по полям из секции ИТОГО, добавляете новое ПОЛЕ = ВТ.Сумма / <ИмяСгруппированнойВТ>.Сумма. Как-то так.
---
не могли бы прмерно показать что делается после помещения запрса в первую вт. Как там потом идет
Левое СОЕДИНЕНИЕ
"тот же запрос". но как написать группировки из секции ИТОГО? И связи... Или всё это в конструкторе делать?
---
```1c
    ВЫБРАТЬ
    ВТ.*,
    ВТ.Сумма / ИмяСгруппированнойВТ.Сумма
    ИЗ ВТ КАК ВТ
    ЛЕВОЕ СОЕДИНЕНИЕ (
    ВЫБРАТЬ
    ВТ.Номенклатура,
    ВТ.Контрагент,
    ВТ.ДоговорКонтрагента,
    ВТ.Регистратор,
    СУММА(ВТ.Сумма) КАК Сумма
    ИЗ ВТ КАК ВТ
    СГРУППИРОВАТЬ ПО
    Номенклатура,
    Контрагент,
    ДоговорКонтрагента,
    Регистратор
    ) КАК ИмяСгруппированнойВТ
    ПО
    ВТ.Номенклатура = ИмяСгруппированнойВТ.Номенклатура
    И ВТ.Контрагент = ИмяСгруппированнойВТ.Контрагент
    И ВТ.ДоговорКонтрагента = ИмяСгруппированнойВТ.ДоговорКонтрагента
    И ВТ.Регистратор = ИмяСгруппированнойВТ.Регистратор
```

//здесь ваша секция ИТОГИ
---
Cпасибо большое. Появляется какая-то синтаксическая ошбка на строке ПОМЕСТИТЬ ВТ1

```1c
    "ВЫБРАТЬ
    | Sales.Номенклатура КАК Номенклатура,
    | Sales.Контрагент КАК Контрагент,
    | Sales.ДоговорКонтрагента КАК ДоговорКонтрагента,
    | СУММА(Sales.Количество) КАК Количество,
    | СУММА(Sales.Сумма) КАК Сумма,
    | СРЕДНЕЕ(Sales.Цена) КАК Цена,
    | Sales.Регистратор КАК Регистратор,
    | ВЫРАЗИТЬ(Sales.Сумма - Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)) КАК ПрибыльРуб,
    | ВЫБОР
    | КОГДА Sales.Количество * PrimeCost.ЦенаСебест = 0
    | ТОГДА 0
    | ИНАЧЕ ВЫРАЗИТЬ(Sales.Сумма * 100 / (Sales.Количество * PrimeCost.ЦенаСебест) - 100 КАК ЧИСЛО(15, 2))
    | КОНЕЦ КАК ПрибыльПроцц,
    | PrimeCost.ЦенаСебест КАК ЦенаСебест,
    | ВЫРАЗИТЬ(Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)) КАК СуммаСебест
    //| Sales.Сумма / СУММА(Sales.Сумма) КАК процпродаж
    |ИЗ
    | (ВЫБРАТЬ
    | ХозрасчетныйОборотыДтКт.СубконтоКт3 КАК Номенклатура,
    | ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК Контрагент,
    | ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК ДоговорКонтрагента,
    | ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК Количество,
    | ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма,
    | ВЫБОР
    | КОГДА ХозрасчетныйОборотыДтКт.КоличествоОборотКт = 0
    | ТОГДА 0
    | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СуммаОборот, 0) / ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК ЧИСЛО(15, 2))
    | КОНЕЦ КАК Цена,
    | ХозрасчетныйОборотыДтКт.Регистратор КАК Регистратор
    | ИЗ
    | РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПер, &КонПер, Регистратор, , , СчетКт = &Сч9001, , Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК Sales
    | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    | ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК Количество,
    | ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма,
    | ХозрасчетныйОборотыДтКт.СубконтоКт1 КАК Номенклатура,
    | ВЫБОР
    | КОГДА ХозрасчетныйОборотыДтКт.КоличествоОборотКт = 0
    | ТОГДА 0
    | ИНАЧЕ ХозрасчетныйОборотыДтКт.СуммаОборот / ХозрасчетныйОборотыДтКт.КоличествоОборотКт
    | КОНЕЦ КАК ЦенаСебест
    | ИЗ
    | РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
    | &НачПер,
    | &КонПер,
    | Период,
    | СчетДт = &Сч9002
    | ИЛИ СчетДт = &Сч9102,
    | ,
    | СчетКт = &Сч43
    | ИЛИ СчетКт = &Сч4101
    | ИЛИ СчетКт = &Сч4104
    | ИЛИ СчетКт = &Сч10,
    | ,
    | Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК PrimeCost
    | ПО Sales.Номенклатура = PrimeCost.Номенклатура
    |
    |СГРУППИРОВАТЬ ПО
    | Sales.Номенклатура,
    | Sales.Контрагент,
    | Sales.ДоговорКонтрагента,
    | Sales.Регистратор,
    | PrimeCost.ЦенаСебест,
    | ВЫРАЗИТЬ(Sales.Сумма - Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)),
    | ВЫБОР
    | КОГДА Sales.Количество * PrimeCost.ЦенаСебест = 0
    | ТОГДА 0
    | ИНАЧЕ ВЫРАЗИТЬ(Sales.Сумма * 100 / (Sales.Количество * PrimeCost.ЦенаСебест) - 100 КАК ЧИСЛО(15, 2))
    | КОНЕЦ,
    | ВЫРАЗИТЬ(Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)),
    | Sales.Сумма
    |ПОМЕСТИТЬ ВТ1;
    |ВЫБРАТЬ
    | ВТ1.Sales.Номенклатура КАК Номенклатура,
    | ВТ1.Sales.Контрагент КАК Контрагент,
    | ВТ1.Sales.ДоговорКонтрагента КАК ДоговорКонтрагента,
    | ВТ1.СУММА(Sales.Количество) КАК Количество,
    | ВТ1.СУММА(Sales.Сумма) КАК Сумма,
    | ВТ1.СРЕДНЕЕ(Sales.Цена) КАК Цена,
    | ВТ1.Sales.Регистратор КАК Регистратор,
    | ВТ1.ВЫРАЗИТЬ(Sales.Сумма - Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)) КАК ПрибыльРуб,
    | ВЫБОР
    | КОГДА Sales.Количество * PrimeCost.ЦенаСебест = 0
    | ТОГДА 0
    | ИНАЧЕ ВЫРАЗИТЬ(Sales.Сумма * 100 / (Sales.Количество * PrimeCost.ЦенаСебест) - 100 КАК ЧИСЛО(15, 2))
    | КОНЕЦ КАК ПрибыльПроцц,
    | ВТ1.PrimeCost.ЦенаСебест КАК ЦенаСебест,
    | ВТ1.ВЫРАЗИТЬ(Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)) КАК СуммаСебест,
    | ВТ.Сумма / ВТ1.Сумма КАК ПроцОтПродаж
    |ИЗ ВТ1 КАК ВТ2
    | СГРУППИРОВАТЬ ПО
    | Номенклатура,
    | Контрагент,
    | ДоговорКонтрагента,
    | Регистратор
    | ) КАК ВТ2
    | ПО
    | ВТ.Номенклатура = ВТ2.Номенклатура
    | И ВТ.Контрагент = ВТ2.Контрагент
    | И ВТ.ДоговорКонтрагента = ВТ2.ДоговорКонтрагента
    | И ВТ.Регистратор = ВТ2.Регистратор
    |ИТОГИ
    | СУММА(Количество),
    | СУММА(Сумма),
    | СРЕДНЕЕ(Цена),
    | СУММА(ПрибыльРуб),
    | СРЕДНЕЕ(ПрибыльПроцц),
    | СРЕДНЕЕ(ЦенаСебест),
    | СУММА(СуммаСебест),
    | СУММА(процпродаж)
    |ПО
    | ОБЩИЕ,
    | Номенклатура,
    | Контрагент,
    | ДоговорКонтрагента,
    | Регистратор";
```

Это весь запрос который появился.
---
Появляется какая-то синтаксическая ошбка на строке ПОМЕСТИТЬ ВТ1
конструкцию ПОМЕСТИТЬ надо располагать перед оператором ИЗ
---
А в СКД всё это поместить?
---
https://helpme1c.ru/yazyk-zaprosov-1s-8-3-dlya-nachinayushhix-programmistov-paketnye-zaprosy-i-vremennye-tablicy
---
Да, в СКД бы решение красивее получилось через пользовательское поле.
---
в скд почему то данный запрос не выводит ничего
---
А для СКД вроде итоги не нужны, она их по другому считает.
---
Добрый день, попробуйте через пользовательское поле в СКД.

https://wampi.ru/image/R4lzLCw
---
На сумму из каких итогов делиться должно? Из общих?
---
на сумму из общих итогов, да. Т.е на СУММА после Итоги
---
Есть столбнц сумма. В итогах считается общая сумма по этой колонке. И вот на это значение надо разделить.
---
Попробуй так

```1c
    ВЫБРАТЬ
    Sales.Номенклатура КАК Номенклатура,
    Sales.Контрагент КАК Контрагент,
    Sales.ДоговорКонтрагента КАК ДоговорКонтрагента,
    СУММА(Sales.Количество) КАК Количество,
    СУММА(Sales.Сумма) КАК Сумма,
    СРЕДНЕЕ(Sales.Цена) КАК Цена,
    Sales.Регистратор КАК Регистратор,
    ВЫРАЗИТЬ(Sales.Сумма - Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)) КАК ПрибыльРуб,
    ВЫБОР
    КОГДА Sales.Количество * PrimeCost.ЦенаСебест = 0
    ТОГДА 0
    ИНАЧЕ ВЫРАЗИТЬ(Sales.Сумма * 100 / (Sales.Количество * PrimeCost.ЦенаСебест) - 100 КАК ЧИСЛО(15, 2))
    КОНЕЦ КАК ПрибыльПроцц,
    PrimeCost.ЦенаСебест КАК ЦенаСебест,
    ВЫРАЗИТЬ(Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)) КАК СуммаСебест,
    СУММА(ВЫБОР
    КОГДА AllSales.Сумма = 0
    ТОГДА 0
    ИНАЧЕ ВЫРАЗИТЬ(Sales.Сумма / AllSales.Сумма * 100 КАК ЧИСЛО(15, 2))
    КОНЕЦ) КАК ПроцентПродаж
    ИЗ
    (ВЫБРАТЬ
    ХозрасчетныйОборотыДтКт.СубконтоКт3 КАК Номенклатура,
    ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК Контрагент,
    ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК ДоговорКонтрагента,
    ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК Количество,
    ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма,
    ВЫБОР
    КОГДА ХозрасчетныйОборотыДтКт.КоличествоОборотКт = 0
    ТОГДА 0
    ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СуммаОборот, 0) / ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК ЧИСЛО(15, 2))
    КОНЕЦ КАК Цена,
    ХозрасчетныйОборотыДтКт.Регистратор КАК Регистратор
    ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПер, &КонПер, Регистратор, , , СчетКт = &Сч9001, , Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК Sales
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК Количество,
    ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма,
    ХозрасчетныйОборотыДтКт.СубконтоКт1 КАК Номенклатура,
    ВЫБОР
    КОГДА ХозрасчетныйОборотыДтКт.КоличествоОборотКт = 0
    ТОГДА 0
    ИНАЧЕ ХозрасчетныйОборотыДтКт.СуммаОборот / ХозрасчетныйОборотыДтКт.КоличествоОборотКт
    КОНЕЦ КАК ЦенаСебест
    ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
    &НачПер,
    &КонПер,
    Период,
    СчетДт = &Сч9002
    ИЛИ СчетДт = &Сч9102,
    ,
    СчетКт = &Сч43
    ИЛИ СчетКт = &Сч4101
    ИЛИ СчетКт = &Сч4104
    ИЛИ СчетКт = &Сч10,
    ,
    Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК PrimeCost
    ПО Sales.Номенклатура = PrimeCost.Номенклатура
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    СУММА(ХозрасчетныйОборотыДтКт.СуммаОборот) КАК Сумма
    ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПер, &КонПер, Регистратор, , , СчетКт = &Сч9001, , Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК AllSales
    ПО (ИСТИНА)

    СГРУППИРОВАТЬ ПО
    Sales.Номенклатура,
    Sales.Контрагент,
    Sales.ДоговорКонтрагента,
    Sales.Регистратор,
    PrimeCost.ЦенаСебест,
    ВЫРАЗИТЬ(Sales.Сумма - Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)),
    ВЫБОР
    КОГДА Sales.Количество * PrimeCost.ЦенаСебест = 0
    ТОГДА 0
    ИНАЧЕ ВЫРАЗИТЬ(Sales.Сумма * 100 / (Sales.Количество * PrimeCost.ЦенаСебест) - 100 КАК ЧИСЛО(15, 2))
    КОНЕЦ,
    ВЫРАЗИТЬ(Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2))
    ИТОГИ
    СУММА(Количество),
    СУММА(Сумма),
    СРЕДНЕЕ(Цена),
    СУММА(ПрибыльРуб),
    СРЕДНЕЕ(ПрибыльПроцц),
    СРЕДНЕЕ(ЦенаСебест),
    СУММА(СуммаСебест)
    ПО
    ОБЩИЕ,
    Номенклатура,
    Контрагент,
    ДоговорКонтрагента,
    Регистратор
```
---
Слушайте, похоже, что оно. Спасибо огромное, sm заслужили точно.
---
проверьте только корректность, вроде всё ок должно быть, но лучше проверить
---
я так понимаю поле процент продаж добавили?
---
нагло конечно наверное, но спрошу здесь чтоб не флудить.
Есть простейший запрос

```1c
    "ВЫБРАТЬ
    | Контрагенты.ОсновнойВидДеятельности,
    | Контрагенты.Код
    |ИЗ
    | Справочник.Контрагенты КАК Контрагенты";
    |ГДЕ
    | ОсновнойВидДеятельности.Код = "УТ0000001" КАК КодДеят = "R"
    | ОсновнойВидДеятельности.Код = "УТ0000002" КАК КодДеят = "BC"";
```

Можно ли как то запросе указать значение КодДеят?
Пробовал немного по другому, обрабатывать после

```1c
    ВДЗ = РезультатЗапроса.Выбрать();

    Если ВДЗ.ОсновнойВидДеятельности.НайтиПоКоду ("УТ0000001")
    Тогда КодДеят = "BC"
    Иначе КодДеят = "R"
    КонецЕсли;
```

Ноо пишет НайтиПоКоду значение не является значением объектного типа (найти по коду). Как можно разделить тут это?
---
ну этот запрос ест не работает (после где я удалил уже)
---
во втором случае (если обработка резульата после запроса) выводит везде R
---
```1c
    ВЫБРАТЬ
    | ВЫБОР КОГДА Контрагенты.ОсновнойВидДеятельности.Код = "УТ0000001" ТОГДА "R"
    | КОГДА Контрагенты.ОсновнойВидДеятельности.Код = "УТ0000002" ТОГДА "BC"
    | ИНАЧЕ "" КОНЕЦ,
    | Контрагенты.Код
    |ИЗ
    | Справочник.Контрагенты КАК Контрагенты";
    |ГДЕ
    | Контрагенты.ОсновнойВидДеятельности.Код В ("УТ0000001", "УТ0000002");
```

ВДЗ.ОсновнойВидДеятельности.НайтиПоКоду ("УТ0000001") работать не будет,

условие надо ВДЗ.ОсновнойВидДеятельности = Справочники.(имя справочника с видами деятельности).НайтиПоКоду("УТ0000001")