Версия для печати темы (https://pro1c.org.ua/index.php?s=77c99fe1cc285ccb58eb92e279dd1269&showtopic=66960)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Запрос по документам по сумме в валюте

Автор: Talkman 28.04.22, 8:47

Добрый день и Слава Украине! Задача - получить в запросе сумму документа в выбранной валюте по курсу на дату документа. Регистр сведений КурсыВалют, периодичность в пределах дня, независимый.

    Валюта = Справочники.Валюты.НайтиПоНаименованию("usd",Истина);
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ЗаказПокупателя.СуммаДокумента,
        |    ЗаказПокупателя.Дата КАК Дата1,
        |    ЗаказПокупателя.Ссылка,
        |    НАЧАЛОПЕРИОДА(ЗаказПокупателя.Дата, ДЕНЬ) КАК ДАТА,
        |    ЗаказПокупателя.СуммаДокумента / (КурсыВалютСрезПервых.Курс / КурсыВалютСрезПервых.Кратность) КАК ВВалюте
        |ИЗ
        |    РегистрСведений.КурсыВалют.СрезПервых(, Валюта = &Валюта) КАК КурсыВалютСрезПервых
        |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя
        |        ПО (НАЧАЛОПЕРИОДА(ЗаказПокупателя.Дата, ДЕНЬ) = КурсыВалютСрезПервых.Период)
        |ГДЕ
        |    ЗаказПокупателя.Дата МЕЖДУ &НачПериода И &КонПериода";
    
    Запрос.УстановитьПараметр("КонПериода", КонПериода);
    Запрос.УстановитьПараметр("НачПериода", НачПериода);
    Запрос.УстановитьПараметр("Валюта", Валюта);

    
    РезультатЗапроса = Запрос.Выполнить().Выгрузить().ВыбратьСтроку();


Результат запроса пустой. Что я делаю не так?

Автор: Vofka 28.04.22, 9:01

Героям слава!
Посмотрите https://pro1c.org.ua/index.php?showtopic=6419.

Автор: Talkman 28.04.22, 9:11

Vofka @ Сегодня, 9:01 * ,
Спасибо, инфа интересная и нужная. Но есть одно но. Я с начала решил упростить задачу, чтобы было понятнее, чего я хочу, но видимо не получится. Есть отчет на базе универсального отчета с таким листингом запроса в начальных настройках. Внимание большой запрос...

Запрос

ТекстЗапроса = 
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    ПродажиОбороты.ДокументПродажи.Ответственный КАК Ответственный,
    |    ПродажиОбороты.Подразделение КАК Подразделение,
    |    ПродажиОбороты.Контрагент КАК Контрагент,
    |    ПродажиОбороты.ЗаказПокупателя КАК ЗаказПокупателя,
    |    ПродажиОбороты.Номенклатура КАК Номенклатура,
    |    ПРЕДСТАВЛЕНИЕ(ПродажиОбороты.ЗаказПокупателя.Ответственный) КАК ОтветственныйПредставление,
    |    ПРЕДСТАВЛЕНИЕ(ПродажиОбороты.Подразделение),
    |    ПРЕДСТАВЛЕНИЕ(ПродажиОбороты.Контрагент),
    |    ПРЕДСТАВЛЕНИЕ(ПродажиОбороты.ЗаказПокупателя),
    |    ПРЕДСТАВЛЕНИЕ(ПродажиОбороты.Номенклатура),
    |    ПродажиОбороты.КоличествоОборот * ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент, 1) / ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент, 1) КАК КоличествоЕдиницОтчетовОборот,
    |    ПродажиОбороты.СтоимостьОборот / ВЫБОР
    |        КОГДА КурсыВалютСрезПоследних.Кратность = 0
    |            ТОГДА 1
    |        ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
    |    КОНЕЦ КАК СтоимостьОборот,
    |    ЕСТЬNULL(ТаблицаРегистраПродажиСебестоимость.СтоимостьОборот / ВЫБОР
    |            КОГДА КурсыВалютСрезПоследних.Кратность = 0
    |                ТОГДА 1
    |            ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
    |        КОНЕЦ, 0) КАК Себестоимость0,
    |    ПродажиОбороты.КоличествоОборот * (ЦеныНоменклатуры1.Цена / ЦеныНоменклатуры1.ЕдиницаИзмерения.Коэффициент) * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалют1.Курс / КурсыВалют1.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен1 / ВЫБОР
    |        КОГДА КурсыВалютСрезПоследних.Кратность = 0
    |            ТОГДА 1
    |        ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
    |    КОНЕЦ КАК Себестоимость1,
    |    ПродажиОбороты.КоличествоОборот * (ЦеныНоменклатуры2.Цена / ЦеныНоменклатуры2.ЕдиницаИзмерения.Коэффициент) * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалют2.Курс / КурсыВалют2.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен2 / ВЫБОР
    |        КОГДА КурсыВалютСрезПоследних.Кратность = 0
    |            ТОГДА 1
    |        ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
    |    КОНЕЦ КАК Себестоимость2,
    |    ВЫБОР
    |        КОГДА &ПоТипамЦен
    |            ТОГДА ВЫБОР
    |                    КОГДА ЕСТЬNULL(ЦеныНоменклатуры1.Цена, 0) > 0
    |                        ТОГДА ПродажиОбороты.КоличествоОборот * (ЦеныНоменклатуры1.Цена / ЦеныНоменклатуры1.ЕдиницаИзмерения.Коэффициент) * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалют1.Курс / КурсыВалют1.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен1 / ВЫБОР
    |                                КОГДА КурсыВалютСрезПоследних.Кратность = 0
    |                                    ТОГДА 1
    |                                ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
    |                            КОНЕЦ
    |                    ИНАЧЕ ПродажиОбороты.КоличествоОборот * (ЦеныНоменклатуры2.Цена / ЦеныНоменклатуры2.ЕдиницаИзмерения.Коэффициент) * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалют2.Курс / КурсыВалют2.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен2 / ВЫБОР
    |                            КОГДА КурсыВалютСрезПоследних.Кратность = 0
    |                                ТОГДА 1
    |                            ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
    |                        КОНЕЦ
    |                КОНЕЦ
    |        ИНАЧЕ ЕСТЬNULL(ТаблицаРегистраПродажиСебестоимость.СтоимостьОборот / ВЫБОР
    |                    КОГДА КурсыВалютСрезПоследних.Кратность = 0
    |                        ТОГДА 1
    |                    ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
    |                КОНЕЦ, 0)
    |    КОНЕЦ КАК Себестоимость,
    |    ЕСТЬNULL(ТЗРОбороты.СуммаОборот / ВЫБОР
    |            КОГДА КурсыВалютСрезПоследних.Кратность = 0
    |                ТОГДА 1
    |            ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
    |        КОНЕЦ, 0) КАК СуммаТЗР,
    |    ЕСТЬNULL(БонусыОбороты.СуммаОборот / ВЫБОР
    |            КОГДА КурсыВалютСрезПоследних.Кратность = 0
    |                ТОГДА 1
    |            ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
    |        КОНЕЦ, 0) КАК СуммаБонусов,
    |    ВЫБОР
    |        КОГДА &ПоТипамЦен
    |            ТОГДА ВЫБОР
    |                    КОГДА ЕСТЬNULL(ЦеныНоменклатуры1.Цена, 0) > 0
    |                        ТОГДА (ПродажиОбороты.СтоимостьОборот - ЕСТЬNULL(ТЗРОбороты.СуммаОборот, 0) - ЕСТЬNULL(БонусыОбороты.СуммаОборот, 0) - ПродажиОбороты.КоличествоОборот * (ЦеныНоменклатуры1.Цена / ЦеныНоменклатуры1.ЕдиницаИзмерения.Коэффициент) * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалют1.Курс / КурсыВалют1.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен1) / ВЫБОР
    |                                КОГДА КурсыВалютСрезПоследних.Кратность = 0
    |                                    ТОГДА 1
    |                                ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
    |                            КОНЕЦ
    |                    ИНАЧЕ (ПродажиОбороты.СтоимостьОборот - ЕСТЬNULL(ТЗРОбороты.СуммаОборот, 0) - ЕСТЬNULL(БонусыОбороты.СуммаОборот, 0) - ПродажиОбороты.КоличествоОборот * (ЦеныНоменклатуры2.Цена / ЦеныНоменклатуры2.ЕдиницаИзмерения.Коэффициент) * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалют2.Курс / КурсыВалют2.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен2) / ВЫБОР
    |                            КОГДА КурсыВалютСрезПоследних.Кратность = 0
    |                                ТОГДА 1
    |                            ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
    |                        КОНЕЦ
    |                КОНЕЦ
    |        ИНАЧЕ (ПродажиОбороты.СтоимостьОборот - ЕСТЬNULL(ТЗРОбороты.СуммаОборот, 0) - ЕСТЬNULL(БонусыОбороты.СуммаОборот, 0) - ЕСТЬNULL(ТаблицаРегистраПродажиСебестоимость.СтоимостьОборот, 0)) / ВЫБОР
    |                КОГДА КурсыВалютСрезПоследних.Кратность = 0
    |                    ТОГДА 1
    |                ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
    |            КОНЕЦ
    |    КОНЕЦ КАК ВаловаяПрибыль,
    |    ВЫБОР
    |        КОГДА ПродажиОбороты.СтоимостьОборот = 0
    |            ТОГДА 0
    |        ИНАЧЕ 100 * ВЫБОР
    |                КОГДА &ПоТипамЦен
    |                    ТОГДА ВЫБОР
    |                            КОГДА ЕСТЬNULL(ЦеныНоменклатуры1.Цена, 0) > 0
    |                                ТОГДА ПродажиОбороты.СтоимостьОборот - ЕСТЬNULL(ТЗРОбороты.СуммаОборот, 0) - ЕСТЬNULL(БонусыОбороты.СуммаОборот, 0) - ПродажиОбороты.КоличествоОборот * (ЦеныНоменклатуры1.Цена / ЦеныНоменклатуры1.ЕдиницаИзмерения.Коэффициент) * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалют1.Курс / КурсыВалют1.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен1
    |                            ИНАЧЕ ПродажиОбороты.СтоимостьОборот - ЕСТЬNULL(ТЗРОбороты.СуммаОборот, 0) - ЕСТЬNULL(БонусыОбороты.СуммаОборот, 0) - ПродажиОбороты.КоличествоОборот * (ЦеныНоменклатуры2.Цена / ЦеныНоменклатуры2.ЕдиницаИзмерения.Коэффициент) * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалют2.Курс / КурсыВалют2.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен2
    |                        КОНЕЦ
    |                ИНАЧЕ ПродажиОбороты.СтоимостьОборот - ЕСТЬNULL(ТЗРОбороты.СуммаОборот, 0) - ЕСТЬNULL(БонусыОбороты.СуммаОборот, 0) - ЕСТЬNULL(ТаблицаРегистраПродажиСебестоимость.СтоимостьОборот, 0)
    |            КОНЕЦ / ПродажиОбороты.СтоимостьОборот
    |    КОНЕЦ КАК Рентабельность,
    |    ПродажиОбороты.Регистратор,
    |    ПродажиОбороты.Период,
    |    НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ДЕНЬ) КАК ПериодДень,
    |    НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, НЕДЕЛЯ) КАК ПериодНеделя,
    |    НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ДЕКАДА) КАК ПериодДекада,
    |    НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ) КАК ПериодМесяц,
    |    НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, КВАРТАЛ) КАК ПериодКвартал,
    |    НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие,
    |    НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ГОД) КАК ПериодГод,
    |    ВЫБОР
    |        КОГДА КурсыВалютСрезПоследних.Кратность = 0
    |            ТОГДА 1
    |        ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
    |    КОНЕЦ КАК КурсРегистратора
    |{ВЫБРАТЬ
    |    Ответственный.*,
    |    Подразделение.*,
    |    Контрагент.*,
    |    ЗаказПокупателя.*,
    |    Номенклатура.*,
    |    КоличествоЕдиницОтчетовОборот,
    |    СтоимостьОборот,
    |    Себестоимость0,
    |    Себестоимость1,
    |    Себестоимость2,
    |    Себестоимость,
    |    СуммаТЗР,
    |    СуммаБонусов,
    |    ВаловаяПрибыль,
    |    Рентабельность,
    |    Регистратор,
    |    Период,
    |    ПериодДень,
    |    ПериодНеделя,
    |    ПериодДекада,
    |    ПериодМесяц,
    |    ПериодКвартал,
    |    ПериодПолугодие,
    |    ПериодГод}
    |ИЗ
    |    РегистрСведений.КурсыВалют.СрезПоследних(&ДатаКон, Валюта = &ВалютаУпрУчета) КАК УпрВалюты,
    |    РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор, {(Подразделение).* КАК Подразделение, (Контрагент).* КАК Контрагент, (ЗаказПокупателя).* КАК ЗаказПокупателя, (Номенклатура).* КАК Номенклатура}) КАК ПродажиОбороты
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
    |                &ДатаКон,
    |                ТипЦен = &БазовыйТипЦен1
    |                    И ХарактеристикаНоменклатуры = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) {(Номенклатура).* КАК Номенклатура}) КАК ЦеныНоменклатуры1
    |        ПО ПродажиОбороты.Номенклатура = ЦеныНоменклатуры1.Номенклатура
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
    |                &ДатаКон,
    |                ТипЦен = &БазовыйТипЦен2
    |                    И ХарактеристикаНоменклатуры = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) {(Номенклатура).* КАК Номенклатура}) КАК ЦеныНоменклатуры2
    |        ПО ПродажиОбороты.Номенклатура = ЦеныНоменклатуры2.Номенклатура
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаКон, ) КАК КурсыВалют2
    |        ПО (ЦеныНоменклатуры2.Валюта = КурсыВалют2.Валюта)
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаКон, ) КАК КурсыВалют1
    |        ПО (ЦеныНоменклатуры1.Валюта = КурсыВалют1.Валюта)
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТЗР.Обороты(&ДатаНач, &ДатаКон, , {(Подразделение).* КАК Подразделение, (ЗаказПокупателя).* КАК ЗаказПокупателя, (Номенклатура).* КАК Номенклатура}) КАК ТЗРОбороты
    |        ПО ПродажиОбороты.ЗаказПокупателя = ТЗРОбороты.ЗаказПокупателя
    |            И ПродажиОбороты.Номенклатура = ТЗРОбороты.Номенклатура
    |            И ПродажиОбороты.Регистратор = ТЗРОбороты.ДокументДвижения
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Бонусы.Обороты(&ДатаНач, &ДатаКон, , {(Подразделение).* КАК Подразделение, (ЗаказПокупателя).* КАК ЗаказПокупателя, (Номенклатура).* КАК Номенклатура}) КАК БонусыОбороты
    |        ПО ПродажиОбороты.ЗаказПокупателя = БонусыОбороты.ЗаказПокупателя
    |            И ПродажиОбороты.Номенклатура = БонусыОбороты.Номенклатура
    |            И ПродажиОбороты.Регистратор = БонусыОбороты.ДокументДвижения
    |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |            ПродажиСебестоимость.Номенклатура КАК Номенклатура,
    |            ПродажиСебестоимость.ЗаказПокупателя КАК ЗаказПокупателя,
    |            ВЫБОР
    |                КОГДА ПродажиСебестоимость.ДокументДвижения <> НЕОПРЕДЕЛЕНО
    |                    ТОГДА ПродажиСебестоимость.ДокументДвижения
    |                ИНАЧЕ ПродажиСебестоимость.Регистратор
    |            КОНЕЦ КАК Регистратор,
    |            СУММА(ПродажиСебестоимость.Стоимость) КАК СтоимостьОборот
    |        ИЗ
    |            РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость
    |        ГДЕ
    |            ПродажиСебестоимость.Период МЕЖДУ &ДатаНачала И &ДатаКонца
    |        {ГДЕ
    |            ПродажиСебестоимость.Подразделение.* КАК Подразделение,
    |            ПродажиСебестоимость.Номенклатура.* КАК Номенклатура,
    |            ПродажиСебестоимость.ЗаказПокупателя.* КАК ЗаказПокупателя}
    |        
    |        СГРУППИРОВАТЬ ПО
    |            ПродажиСебестоимость.Номенклатура,
    |            ПродажиСебестоимость.ЗаказПокупателя,
    |            ВЫБОР
    |                КОГДА ПродажиСебестоимость.ДокументДвижения <> НЕОПРЕДЕЛЕНО
    |                    ТОГДА ПродажиСебестоимость.ДокументДвижения
    |                ИНАЧЕ ПродажиСебестоимость.Регистратор
    |            КОНЕЦ) КАК ТаблицаРегистраПродажиСебестоимость
    |        ПО (ТаблицаРегистраПродажиСебестоимость.Номенклатура = ПродажиОбороты.Номенклатура)
    |            И (ТаблицаРегистраПродажиСебестоимость.ЗаказПокупателя = ПродажиОбороты.ЗаказПокупателя)
    |            И (ТаблицаРегистраПродажиСебестоимость.Регистратор = ПродажиОбороты.Регистратор)
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(, Валюта = &ВалютаОтображения) КАК КурсыВалютСрезПоследних
    |        ПО (НАЧАЛОПЕРИОДА(ПродажиОбороты.Регистратор.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(КурсыВалютСрезПоследних.Период, ДЕНЬ))
    |{ГДЕ
    |    ПродажиОбороты.ДокументПродажи.Ответственный.* КАК Ответственный,
    |    ПродажиОбороты.Подразделение.* КАК Подразделение,
    |    ПродажиОбороты.Контрагент.* КАК Контрагент,
    |    ПродажиОбороты.ЗаказПокупателя.* КАК ЗаказПокупателя,
    |    ПродажиОбороты.Номенклатура.* КАК Номенклатура,
    |    ПродажиОбороты.Регистратор КАК Регистратор,
    |    ПродажиОбороты.Период КАК Период,
    |    (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ДЕНЬ)) КАК ПериодДень,
    |    (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, НЕДЕЛЯ)) КАК ПериодНеделя,
    |    (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ДЕКАДА)) КАК ПериодДекада,
    |    (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ)) КАК ПериодМесяц,
    |    (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, КВАРТАЛ)) КАК ПериодКвартал,
    |    (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ПОЛУГОДИЕ)) КАК ПериодПолугодие,
    |    (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ГОД)) КАК ПериодГод}
    |{УПОРЯДОЧИТЬ ПО
    |    Ответственный.*,
    |    Подразделение.*,
    |    Контрагент.*,
    |    ЗаказПокупателя.*,
    |    Номенклатура.*,
    |    СтоимостьОборот,
    |    СуммаТЗР,
    |    СуммаБонусов,
    |    ВаловаяПрибыль,
    |    Рентабельность,
    |    Регистратор,
    |    Период,
    |    ПериодДень,
    |    ПериодНеделя,
    |    ПериодДекада,
    |    ПериодМесяц,
    |    ПериодКвартал,
    |    ПериодПолугодие,
    |    ПериодГод}
    |ИТОГИ
    |    СУММА(КоличествоЕдиницОтчетовОборот),
    |    СУММА(СтоимостьОборот),
    |    СУММА(Себестоимость0),
    |    СУММА(Себестоимость1),
    |    СУММА(Себестоимость2),
    |    СУММА(Себестоимость),
    |    СУММА(СуммаТЗР),
    |    СУММА(СуммаБонусов),
    |    СУММА(ВаловаяПрибыль),
    |    ВЫБОР
    |        КОГДА СУММА(СтоимостьОборот) = 0
    |            ТОГДА 0
    |        ИНАЧЕ 100 * СУММА(ВаловаяПрибыль) / СУММА(СтоимостьОборот)
    |    КОНЕЦ КАК Рентабельность
    |ПО
    |    ОБЩИЕ
    |{ИТОГИ ПО
    |    Ответственный.*,
    |    Подразделение.*,
    |    Контрагент.*,
    |    ЗаказПокупателя.*,
    |    Номенклатура.*,
    |    Регистратор,
    |    Период,
    |    ПериодДень,
    |    ПериодНеделя,
    |    ПериодДекада,
    |    ПериодМесяц,
    |    ПериодКвартал,
    |    ПериодПолугодие,
    |    ПериодГод}
    |АВТОУПОРЯДОЧИВАНИЕ";


Есть вариант обойтись без временных таблиц? Задача, показывать все сумовые значения в выбранной валюте. Сначала в ТЗ было считать сумовые значений по средневзвешенному курсу за период. Тут как бы все понятно. А вот на дату документа регистратора ПродажиОбороты, это уже жестко. Сейчас запрос с левым соединением курса валют не работает...

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua