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