новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Паршиков Павел Робертович
Приватное сообщение

Оптимизировать запрос

14.09.1982(41 год)
113 |  4
16 мая 2020 в 03:02:08 (3 года 45 недель 3 дня 13 часов назад)
33440
Текст задания
ТекстЗапроса = "ВЫБРАТЬ

| СпрНоменклатура.Ссылка КАК Номенклатура,
| естьnull(ОстаткиТюмень.Остаток, 0) КАК ОстатокТюмень,
| естьnull(ОстаткиКурган.Остаток, 0) КАК ОстатокКурган,
| естьnull(ОстаткиСургут.Остаток, 0) КАК ОстатокСургут,
| ЦеныТоваров.Цена КАК Цена
|ИЗ
| Справочник.Номенклатура КАК СпрНоменклатура
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| Ост.Номенклатура КАК Номенклатура,
| СУММА(Ост.Остаток) КАК Остаток
| ИЗ
| (ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
| СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК Остаток
| ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
| {ГДЕ
| ТоварыНаСкладахОстатки.Склад}
|
| СГРУППИРОВАТЬ ПО
| ТоварыНаСкладахОстатки.Номенклатура
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура,
| СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток)
| ИЗ
| РегистрНакопления.ТоварыВНТТ.Остатки КАК ТоварыНаСкладахОстатки
| {ГДЕ
| ТоварыНаСкладахОстатки.Склад}
|
| СГРУППИРОВАТЬ ПО
| ТоварыНаСкладахОстатки.Номенклатура) КАК Ост
|
| СГРУППИРОВАТЬ ПО
| Ост.Номенклатура) КАК Остатки
| ПО СпрНоменклатура.Ссылка = Остатки.Номенклатура

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


| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| Ост.Номенклатура КАК Номенклатура,
| СУММА(Ост.Остаток) КАК Остаток
| ИЗ
| (ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
| СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК Остаток
| ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
| ГДЕ
| ТоварыНаСкладахОстатки.Склад в (&СкладыКурган)
| {ГДЕ
| ТоварыНаСкладахОстатки.Склад}
|
| СГРУППИРОВАТЬ ПО
| ТоварыНаСкладахОстатки.Номенклатура
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура,
| СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток)
| ИЗ
| РегистрНакопления.ТоварыВНТТ.Остатки КАК ТоварыНаСкладахОстатки
| ГДЕ
| ТоварыНаСкладахОстатки.Склад в (&СкладыКурган)
| {ГДЕ
| ТоварыНаСкладахОстатки.Склад}
|
| СГРУППИРОВАТЬ ПО
| ТоварыНаСкладахОстатки.Номенклатура) КАК Ост
|
| СГРУППИРОВАТЬ ПО
| Ост.Номенклатура) КАК ОстаткиКурган
| ПО СпрНоменклатура.Ссылка = ОстаткиКурган.Номенклатура


| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| Ост.Номенклатура КАК Номенклатура,
| СУММА(Ост.Остаток) КАК Остаток
| ИЗ
| (ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
| СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК Остаток
| ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
| ГДЕ
| ТоварыНаСкладахОстатки.Склад в (&СкладыСургут)
| {ГДЕ
| ТоварыНаСкладахОстатки.Склад}
|
| СГРУППИРОВАТЬ ПО
| ТоварыНаСкладахОстатки.Номенклатура
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура,
| СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток)
| ИЗ
| РегистрНакопления.ТоварыВНТТ.Остатки КАК ТоварыНаСкладахОстатки
| ГДЕ
| ТоварыНаСкладахОстатки.Склад в (&СкладыСургут)
| {ГДЕ
| ТоварыНаСкладахОстатки.Склад}
|
| СГРУППИРОВАТЬ ПО
| ТоварыНаСкладахОстатки.Номенклатура) КАК Ост
|
| СГРУППИРОВАТЬ ПО
| Ост.Номенклатура) КАК ОстаткиСургут
| ПО СпрНоменклатура.Ссылка = ОстаткиСургут.Номенклатура


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