Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 мая 2024, 02:36

Как посчитать количество наборов Регистратор+Номенклатура+Характеристика в запросе? (УТ 10.3, 8.3)

Автор PavelVaskan, 22 фев 2024, 13:25

0 Пользователей и 1 гость просматривают эту тему.

PavelVaskan

У меня есть задача - исправить отчёт ПродажиСоСкидками.

Есть три "контрольных" документа с повторяющимися строками сочетаний Номенклатура + Характеристика:







Отчёт (через Универсальный сделан) с запросом построителя даёт некорректность в сумме и проценте скидки как минимум в одном из трёх случаев.

Текст запроса:

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

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


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

Пробовали делать так:

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

СГРУППИРОВАТЬ ПО
ПредоставленныеСкидки.ХарактеристикаНоменклатуры,
ПредоставленныеСкидки.Регистратор,
ПредоставленныеСкидки.Номенклатура
;

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

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

НЕ ПОЛУЧАЕТСЯ ДЛЯ ВСЕХ ТРЁХ СЛУЧАЕВ!..

НАПРАШИВАЕТСЯ В ВЕРХНЕЙ ТАБЛИЦЕ КАК-ТО ПОЛУЧИТЬ КОЛИЧЕСТВО ПОВТОРОВ В ПРЕДЕЛАХ ОДНОГО РЕГИСТРАТОРА сочетаний Номенклатура+Характеристика... Т.е. посчитать (как бы) КОЛИЧЕСТВО(Регистратор+Номенклатура+Характеристика) и поделить сумму скидки на это количество... Допустим, используется Регистр Накопления Продажи с этой целью:

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

СГРУППИРОВАТЬ ПО
Продажи.Регистратор,
Продажи.Номенклатура,
Продажи.ХарактеристикаНоменклатуры


Близко к академическому (но всё ещё по-черновому) вопрос звучит так:

Есть Регистр Накопления Продажи в УТ10.3 8.3.

Хочется: получить таблицу, сгруппированную по Регистратор + Номенклатура + Характеристика с суммой скидки по каждому набору, делённой на количество повторов наборов Регистратор + Номенклатура + Характеристика. Регистратора как параметра нет. Есть даты начала и окончания. Запрос по РН Продажи - по записям (не Остатки, не Оброты, не ОстаткиИОброты).

Потом таблицу цепляют-соединяют с основным запросом - по Регистратор, Номенклатура, Характеристика...

Как родить такой запрос с определением количества повторов (см. на два абзаца выше)?


ИЛИ (конечная цель работы):

Как исправить текст запроса, чтобы работало во всех случаях (для начала - в случае 3-х документов, указанных выше)???


*******
Или (эврика!!!) оно СРЕДНЕЕ же по последней запросной таблице РН Продажи?..

НЕТ, ТАК ТОЖЕ для всех трёх случаев НЕ ПОЛУЧАЕТСЯ!..

PavelVaskan

В таблице "Предоставленные скидки"

Регистратор | Номенклатура | Характеристика | Сумма скидки
___________________________________________________________

Надо в пределах группировки Номенклатура (для строк каждой номенклатуры) поделить сумму скидки на количество сочетаний
Номенклатура + Характеристика (где Номенклатура - та, по которой считаем, текущая)...

Ага... Путём мучания консоли отчётов додумался... теперь осталось изобрести как этот бред сделать и возможно ли оно?  :D  :dfbsdfbsdf:

Потому что СРЕДНЕЕ по РН ПредоставленныеСкидки уходит в "сказку", когда скидка по 1-й строке документа разбивается на 2 строки (или там большее количество строк возможно?) в РН ПредоставленныеСкидки...

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

СГРУППИРОВАТЬ ПО
    ПредоставленныеСкидки.ХарактеристикаНоменклатуры,
    ПредоставленныеСкидки.Регистратор,
    ПредоставленныеСкидки.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////

Итого, у нас в документе 2 строки, а в РН ПредоставленныеСкидки 3 в данном примере





Попробую вложенный запрос использовать!..

PavelVaskan

Итого, у нас в документе 2 строки, количество повторов (сочетаний) Номенклатура+Характеристика 1 (в пределах номенклатуры UNOR 15 St NMax UV), а в РН ПредоставленныеСкидки 3 строки в данном примере

Максим75

PavelVaskan, честно говоря, вообще не понятно, что хочется.
что такое средняя сумма скидки? что Вы хотите получить?
Вам надо получить сумму скидки на 1 единицу номенклатуры в каждом документе?
так берите общую сумму скидки по номенклатуре (вообще не важно, сколькими строками одна номенклатура записана) и поделите на количество проданной номенклатуры.

PavelVaskan

Максим75,
СПАСИБО, Максим75, Вы не успели: Я УЖЕ "РАЗГРЫЗ"!!!  :zebzdr:  :zebzdr:

Итого, долгие упражнения в консоли дали-тки результат...  :befhbt:

"Верхняя" таблица запроса должна быть:

ВЫБРАТЬ
ПредоставленныеСкидки.Регистратор КАК Регистратор,
ПредоставленныеСкидки.Номенклатура КАК Номенклатура,
ПредоставленныеСкидки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
ТаблицаАнализа.СуммаЗначениеУсловияСкидки КАК СуммаЗначениеУсловияСкидки,
ТаблицаКолваПовторов.КоличествоПовторов КАК КоличествоПовторов,
ВЫБОР
КОГДА ТаблицаАнализа.СуммаЗначениеУсловияСкидки = 0
ТОГДА СРЕДНЕЕ(ПредоставленныеСкидки.СуммаСкидки)
ИНАЧЕ СУММА(ПредоставленныеСкидки.СуммаСкидки / ТаблицаКолваПовторов.КоличествоПовторов)
КОНЕЦ КАК СуммаСкидкиОборот
ПОМЕСТИТЬ ПредоставленныеСкидки
ИЗ
РегистрНакопления.ПредоставленныеСкидки КАК ПредоставленныеСкидки
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ПредоставленныеСкидки.Регистратор КАК Регистратор,
ПредоставленныеСкидки.Номенклатура КАК Номенклатура,
ПредоставленныеСкидки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПредоставленныеСкидки.ХарактеристикаНоменклатуры) КАК КоличествоПовторов
ИЗ
(ВЫБРАТЬ
ПредоставленныеСкидки.Регистратор КАК Регистратор,
ПредоставленныеСкидки.Номенклатура КАК Номенклатура,
ПредоставленныеСкидки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры
ИЗ
РегистрНакопления.ПредоставленныеСкидки КАК ПредоставленныеСкидки
ГДЕ
ПредоставленныеСкидки.Период МЕЖДУ &ДатаНач И &ДатаКон

СГРУППИРОВАТЬ ПО
ПредоставленныеСкидки.Регистратор,
ПредоставленныеСкидки.Номенклатура,
ПредоставленныеСкидки.ХарактеристикаНоменклатуры) КАК ПредоставленныеСкидки

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

СГРУППИРОВАТЬ ПО
ПредоставленныеСкидки.Регистратор,
ПредоставленныеСкидки.Номенклатура,
ПредоставленныеСкидки.ХарактеристикаНоменклатуры) КАК ТаблицаАнализа
ПО (ТаблицаАнализа.Регистратор = ПредоставленныеСкидки.Регистратор)
И (ТаблицаАнализа.Номенклатура = ПредоставленныеСкидки.Номенклатура)
И (ТаблицаАнализа.ХарактеристикаНоменклатуры = ПредоставленныеСкидки.ХарактеристикаНоменклатуры)
ГДЕ
ПредоставленныеСкидки.Период МЕЖДУ &ДатаНач И &ДатаКон

СГРУППИРОВАТЬ ПО
ПредоставленныеСкидки.Регистратор,
ПредоставленныеСкидки.Номенклатура,
ПредоставленныеСкидки.ХарактеристикаНоменклатуры,
ТаблицаАнализа.СуммаЗначениеУсловияСкидки,
ТаблицаКолваПовторов.КоличествоПовторов
;

////////////////////////////////////////////////////////////////////////////////

Весь запрос:

ВЫБРАТЬ
ПредоставленныеСкидки.Регистратор КАК Регистратор,
ПредоставленныеСкидки.Номенклатура КАК Номенклатура,
ПредоставленныеСкидки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
ТаблицаАнализа.СуммаЗначениеУсловияСкидки КАК СуммаЗначениеУсловияСкидки,
ТаблицаКолваПовторов.КоличествоПовторов КАК КоличествоПовторов,
ВЫБОР
КОГДА ТаблицаАнализа.СуммаЗначениеУсловияСкидки = 0
ТОГДА СРЕДНЕЕ(ПредоставленныеСкидки.СуммаСкидки)
ИНАЧЕ СУММА(ПредоставленныеСкидки.СуммаСкидки / ТаблицаКолваПовторов.КоличествоПовторов)
КОНЕЦ КАК СуммаСкидкиОборот
ПОМЕСТИТЬ ПредоставленныеСкидки
ИЗ
РегистрНакопления.ПредоставленныеСкидки КАК ПредоставленныеСкидки
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ПредоставленныеСкидки.Регистратор КАК Регистратор,
ПредоставленныеСкидки.Номенклатура КАК Номенклатура,
ПредоставленныеСкидки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПредоставленныеСкидки.ХарактеристикаНоменклатуры) КАК КоличествоПовторов
ИЗ
(ВЫБРАТЬ
ПредоставленныеСкидки.Регистратор КАК Регистратор,
ПредоставленныеСкидки.Номенклатура КАК Номенклатура,
ПредоставленныеСкидки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры
ИЗ
РегистрНакопления.ПредоставленныеСкидки КАК ПредоставленныеСкидки
ГДЕ
ПредоставленныеСкидки.Период МЕЖДУ &ДатаНач И &ДатаКон

СГРУППИРОВАТЬ ПО
ПредоставленныеСкидки.Регистратор,
ПредоставленныеСкидки.Номенклатура,
ПредоставленныеСкидки.ХарактеристикаНоменклатуры) КАК ПредоставленныеСкидки

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

СГРУППИРОВАТЬ ПО
ПредоставленныеСкидки.Регистратор,
ПредоставленныеСкидки.Номенклатура,
ПредоставленныеСкидки.ХарактеристикаНоменклатуры) КАК ТаблицаАнализа
ПО (ТаблицаАнализа.Регистратор = ПредоставленныеСкидки.Регистратор)
И (ТаблицаАнализа.Номенклатура = ПредоставленныеСкидки.Номенклатура)
И (ТаблицаАнализа.ХарактеристикаНоменклатуры = ПредоставленныеСкидки.ХарактеристикаНоменклатуры)
ГДЕ
ПредоставленныеСкидки.Период МЕЖДУ &ДатаНач И &ДатаКон

СГРУППИРОВАТЬ ПО
ПредоставленныеСкидки.Регистратор,
ПредоставленныеСкидки.Номенклатура,
ПредоставленныеСкидки.ХарактеристикаНоменклатуры,
ТаблицаАнализа.СуммаЗначениеУсловияСкидки,
ТаблицаКолваПовторов.КоличествоПовторов
;

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

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

Теги: #запрос 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск