11 июня 2024 в 18:43:28
(27 недель 5 дней 7 часов назад)
33440
V8.x Управление торговлей
16.12.2013 07:44:47
Текст задания
ТекстЗапроса = "ВЫБРАТЬ
| СпрНоменклатура.Ссылка КАК Номенклатура,
| естьnull(ОстаткиТюмень.Остаток, 0) КАК ОстатокТюмень,
| естьnull(ОстаткиКурган.Остаток, 0) КАК ОстатокКурган,
| естьnull(ОстаткиСургут.Остаток, 0) КАК ОстатокСургут,
| ЦеныТоваров.Цена КАК Цена
|ИЗ
| Справочник.Номенклатура КАК СпрНоменклатура
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| Ост.Номенклатура КАК Номенклатура,
| СУММА(Ост.Остаток) КАК Остаток
| ИЗ
| (ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
| СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК Остаток
| ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
| {ГДЕ
| ТоварыНаСкладахОстатки.Склад}
|
| СГРУППИРОВАТЬ ПО
| ТоварыНаСкладахОстатки.Номенклатура
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура,
| СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток)
| ИЗ
| РегистрНакопления.ТоварыВНТТ.Остатки КАК ТоварыНаСкладахОстатки
| {ГДЕ
| ТоварыНаСкладахОстатки.Склад}
|
| СГРУППИРОВАТЬ ПО
| ТоварыНаСкладахОстатки.Номенклатура) КАК Ост
|
| СГРУППИРОВАТЬ ПО
| Ост.Номенклатура) КАК Остатки
| ПО СпрНоменклатура.Ссылка = Остатки.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| Ост.Номенклатура КАК Номенклатура,
| СУММА(Ост.Остаток) КАК Остаток
| ИЗ
| (ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
| СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК Остаток
| ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
| ГДЕ
| ТоварыНаСкладахОстатки.Склад в (&СкладыТюмень)
| {ГДЕ
| ТоварыНаСкладахОстатки.Склад}
|
| СГРУППИРОВАТЬ ПО
| ТоварыНаСкладахОстатки.Номенклатура
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура,
| СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток)
| ИЗ
| РегистрНакопления.ТоварыВНТТ.Остатки КАК ТоварыНаСкладахОстатки
| ГДЕ
| ТоварыНаСкладахОстатки.Склад в (&СкладыТюмень)
| {ГДЕ
| ТоварыНаСкладахОстатки.Склад}
|
| СГРУППИРОВАТЬ ПО
| ТоварыНаСкладахОстатки.Номенклатура) КАК Ост
|
| СГРУППИРОВАТЬ ПО
| Ост.Номенклатура) КАК ОстаткиТюмень
| ПО СпрНоменклатура.Ссылка = ОстаткиТюмень.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| Ост.Номенклатура КАК Номенклатура,
| СУММА(Ост.Остаток) КАК Остаток
| ИЗ
| (ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
| СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК Остаток
| ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
| ГДЕ
| ТоварыНаСкладахОстатки.Склад в (&СкладыКурган)
| {ГДЕ
| ТоварыНаСкладахОстатки.Склад}
|
| СГРУППИРОВАТЬ ПО
| ТоварыНаСкладахОстатки.Номенклатура
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура,
| СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток)
| ИЗ
| РегистрНакопления.ТоварыВНТТ.Остатки КАК ТоварыНаСкладахОстатки
| ГДЕ
| ТоварыНаСкладахОстатки.Склад в (&СкладыКурган)
| {ГДЕ
| ТоварыНаСкладахОстатки.Склад}
|
| СГРУППИРОВАТЬ ПО
| ТоварыНаСкладахОстатки.Номенклатура) КАК Ост
|
| СГРУППИРОВАТЬ ПО
| Ост.Номенклатура) КАК ОстаткиКурган
| ПО СпрНоменклатура.Ссылка = ОстаткиКурган.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| Ост.Номенклатура КАК Номенклатура,
| СУММА(Ост.Остаток) КАК Остаток
| ИЗ
| (ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
| СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК Остаток
| ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
| ГДЕ
| ТоварыНаСкладахОстатки.Склад в (&СкладыСургут)
| {ГДЕ
| ТоварыНаСкладахОстатки.Склад}
|
| СГРУППИРОВАТЬ ПО
| ТоварыНаСкладахОстатки.Номенклатура
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура,
| СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток)
| ИЗ
| РегистрНакопления.ТоварыВНТТ.Остатки КАК ТоварыНаСкладахОстатки
| ГДЕ
| ТоварыНаСкладахОстатки.Склад в (&СкладыСургут)
| {ГДЕ
| ТоварыНаСкладахОстатки.Склад}
|
| СГРУППИРОВАТЬ ПО
| ТоварыНаСкладахОстатки.Номенклатура) КАК Ост
|
| СГРУППИРОВАТЬ ПО
| Ост.Номенклатура) КАК ОстаткиСургут
| ПО СпрНоменклатура.Ссылка = ОстаткиСургут.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
| ТипыЦен.Ссылка КАК ТипЦены,
| ВЫБОР
| КОГДА ТипыЦен.СпособРасчетаЦены = &ПоНаценке И ТипыЦен.Рассчитывается
| ТОГДА ЦеныНоменклатуры.Цена * (1 + ВЫБОР
| КОГДА НаценкиНоменклатуры.ТипЦен ЕСТЬ NULL
| ТОГДА ТипыЦен.ПроцентСкидкиНаценки
| ИНАЧЕ НаценкиНоменклатуры.ПроцентСкидкиНаценки
| КОНЕЦ / 100) / &ОсновнойКурс * (КурсыВалют.Курс / КурсыВалют.Кратность)
| КОГДА ТипыЦен.СпособРасчетаЦены = &ПоДиапозону И ТипыЦен.Рассчитывается
| ТОГДА МИНИМУМ(ДиапазоныЦен.Цена) / &ОсновнойКурс * (КурсыВалютВхождение.Курс / КурсыВалютВхождение.Кратность)
| ИНАЧЕ ЦеныНоменклатуры.Цена / &ОсновнойКурс * (КурсыВалют.Курс / КурсыВалют.Кратность)
| КОНЕЦ КАК Цена
| ИЗ
| Справочник.ТипыЦенНоменклатуры КАК ТипыЦен
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаВыборки, ХарактеристикаНоменклатуры = &ПустаяХарактеристика) КАК ЦеныНоменклатуры
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаВыборки, ) КАК КурсыВалют
| ПО ЦеныНоменклатуры.Валюта = КурсыВалют.Валюта
| ПО (ВЫБОР
| КОГДА ТипыЦен.СпособРасчетаЦены = &ПоНаценке И ТипыЦен.Рассчитывается
| ТОГДА ТипыЦен.БазовыйТипЦен = ЦеныНоменклатуры.ТипЦен
| КОГДА ТипыЦен.СпособРасчетаЦены = &ПоДиапозону И ТипыЦен.Рассчитывается
| ТОГДА ТипыЦен.БазовыйТипЦен = ЦеныНоменклатуры.ТипЦен
| ИНАЧЕ ТипыЦен.Ссылка = ЦеныНоменклатуры.ТипЦен
| КОНЕЦ)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаВыборки, ХарактеристикаНоменклатуры = &ПустаяХарактеристика) КАК НаценкиНоменклатуры
| ПО (ЦеныНоменклатуры.Номенклатура = НаценкиНоменклатуры.Номенклатура)
| И ТипыЦен.Ссылка = НаценкиНоменклатуры.ТипЦен
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДиапазоныЦенДляНаценки.СрезПоследних КАК ДиапазоныЦен
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаВыборки, ) КАК КурсыВалютВхождение
| ПО ДиапазоныЦен.Валюта = КурсыВалютВхождение.Валюта
| ПО ТипыЦен.Ссылка = ДиапазоныЦен.ТипЦен
| И (ДиапазоныЦен.ВерхняяГраница > ЦеныНоменклатуры.Цена)
| ГДЕ
| ТипыЦен.Ссылка = &ТипЦен
| {ГДЕ
| ЦеныНоменклатуры.Номенклатура.*}
|
| СГРУППИРОВАТЬ ПО
| ЦеныНоменклатуры.Номенклатура,
| ТипыЦен.Ссылка,
| ЦеныНоменклатуры.Цена,
| НаценкиНоменклатуры.ПроцентСкидкиНаценки,
| НаценкиНоменклатуры.ТипЦен,
| КурсыВалют.Курс,
| КурсыВалют.Кратность,
| КурсыВалютВхождение.Курс,
| КурсыВалютВхождение.Кратность,
| ТипыЦен.СпособРасчетаЦены,
| ТипыЦен.ПроцентСкидкиНаценки) КАК ЦеныТоваров
| ПО (ЦеныТоваров.Номенклатура = СпрНоменклатура.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
| ПО СпрНоменклатура.Ссылка = ЗначенияСвойствОбъектов.Объект
| И (ЗначенияСвойствОбъектов.Свойство = &СвойствоПроизводитель)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КатегорииОбъектов КАК КатегорияВыгружен
| ПО СпрНоменклатура.Ссылка = КатегорияВыгружен.Объект
| И (КатегорияВыгружен.Категория = &КатегорияВыгружен)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КатегорииОбъектов КАК КатегорияВыгружать
| ПО СпрНоменклатура.Ссылка = КатегорияВыгружать.Объект
| И (КатегорияВыгружать.Категория = &КатегорияНеВыгружать)
|ГДЕ
| (НЕ СпрНоменклатура.ЭтоГруппа) И СпрНоменклатура.НоменклатурнаяГруппа.Код>0" + ДопФильтр + "
|{ГДЕ
| СпрНоменклатура.Ссылка.* КАК Номенклатура}";
Если в силе - готов решить задачу. Занимаюсь только задачами и проектами по повышению производительности и проектированию архитектуры баз данных.
Для качественной оценки потребуется доп. информация.