0
letovd
17.05.23
✎
14:13
|
Задача: получать данные о продажах, где вместо себестоимость определенный вид цены + будет рассчитываться наценка.
Для решения задача решил использовать следующий запрос, насколько он оптимален для задачи?
ВЫБРАТЬ
ЦеныНоменклатурыСрезПоследних.Период КАК Период,
ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
ПОМЕСТИТЬ вт_ЦеныВПериоде
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НачалоПериода, ) КАК ЦеныНоменклатурыСрезПоследних
ГДЕ
ЦеныНоменклатурыСрезПоследних.ВидЦены = &ВидЦены
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ЦеныНоменклатуры.Период,
ЦеныНоменклатуры.Номенклатура,
ЦеныНоменклатуры.Цена
ИЗ
РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ГДЕ
ЦеныНоменклатуры.Период > &НачалоПериода
И ЦеныНоменклатуры.Период <= &КонецПериода
И ЦеныНоменклатуры.ВидЦены = &ВидЦены
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЦеныЗаПериод_Начало.Номенклатура КАК Номенклатура,
ЦеныЗаПериод_Начало.Цена КАК Цена,
ЦеныЗаПериод_Начало.Период КАК НачалоПериода,
ЕСТЬNULL(МИНИМУМ(ЦеныЗаПериод_Конец.Период), &КонецПериода) КАК КонецПериода
ПОМЕСТИТЬ вт_ПериодыЦен
ИЗ
вт_ЦеныВПериоде КАК ЦеныЗаПериод_Начало
ЛЕВОЕ СОЕДИНЕНИЕ вт_ЦеныВПериоде КАК ЦеныЗаПериод_Конец
ПО ЦеныЗаПериод_Начало.Номенклатура = ЦеныЗаПериод_Конец.Номенклатура
И ЦеныЗаПериод_Начало.Период < ЦеныЗаПериод_Конец.Период
СГРУППИРОВАТЬ ПО
ЦеныЗаПериод_Начало.Номенклатура,
ЦеныЗаПериод_Начало.Цена,
ЦеныЗаПериод_Начало.Период
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВыручкаИСебестоимостьПродаж.Период КАК Ссылка,
ВыручкаИСебестоимостьПродаж.АналитикаУчетаПоПартнерам.Партнер КАК Клиент,
ВыручкаИСебестоимостьПродаж.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
ВыручкаИСебестоимостьПродаж.Количество КАК Количество,
1 КАК Цифра,
вт_ПериодыЦен.Цена КАК Цена
ИЗ
РегистрНакопления.ВыручкаИСебестоимостьПродаж КАК ВыручкаИСебестоимостьПродаж
ЛЕВОЕ СОЕДИНЕНИЕ вт_ПериодыЦен КАК вт_ПериодыЦен
ПО ВыручкаИСебестоимостьПродаж.Период >= вт_ПериодыЦен.НачалоПериода
И ВыручкаИСебестоимостьПродаж.Период < вт_ПериодыЦен.КонецПериода
И ВыручкаИСебестоимостьПродаж.АналитикаУчетаНоменклатуры.Номенклатура = вт_ПериодыЦен.Номенклатура
ГДЕ
ВыручкаИСебестоимостьПродаж.Период МЕЖДУ &НачалоПериода И &КонецПериода
|
|