|
СКД .Найти цену на период в Регистр сведений ЦеныНоменклатурыСрезПоследних | ☑ | ||
---|---|---|---|---|
0
bogdan51
03.07.14
✎
13:53
|
Добрый день.
Не получается выбрать из регистра сведений ЦеныНоменклатурыСрезПоследних цены,которая действовала на дату Регистратора в Регистре накопления Запрос. ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход КАК Приход, ВЫРАЗИТЬ(ЦеныНоменклатурыСрезПоследнихП.Цена * ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход КАК ЧИСЛО(11, 2)) КАК СуммаПрихода_в_ЗакупочныхЦенах ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты({(&НачалоПериода)}, {(&КонецПериода)}, Регистратор, Движения, ) КАК ТоварыНаСкладахОстаткиИОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних({()}, ВидЦены = &ЦенаЗакупок) КАК ЦеныНоменклатурыСрезПоследнихП ПО ТоварыНаСкладахОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследнихП.Номенклатура И ТоварыНаСкладахОстаткиИОбороты.Регистратор.Дата >= ЦеныНоменклатурыСрезПоследнихП.Регистратор.Дата Буду благодарен за подсказку. Как правильно построить такой запрос в отчете на СКД? |
|||
1
Бешеная Нога
03.07.14
✎
13:56
|
нужно обращаться не к ЦеныНоменклатурыСрезПоследних , а к ЦеныНоменклатуры.
Поиском по форуму найдешь кучу примеров решения "ресурс на каждую дату запроса", "цена на дату регистратора" |
|||
2
Mitriy
03.07.14
✎
14:24
|
Как-то так:
Запрос. ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход КАК Приход, ТоварыНаСкладахОстаткиИОбороты.Период ПОМЕСТИТЬ ВТ_Номенклатура ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , Регистратор, Движения, ) КАК ТоварыНаСкладахОстаткиИОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Номенклатура.Номенклатура, МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период, ЦеныНоменклатуры.ТипЦен ПОМЕСТИТЬ ВТ_Периоды ИЗ ВТ_Номенклатура КАК ВТ_Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры ПО ВТ_Номенклатура.Номенклатура = ЦеныНоменклатуры.Номенклатура И ВТ_Номенклатура.Период >= ЦеныНоменклатуры.Период И (ЦеныНоменклатуры.ВидЦены = &ЦенаЗакупок) СГРУППИРОВАТЬ ПО ВТ_Номенклатура.Номенклатура, ЦеныНоменклатуры.ТипЦен ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Номенклатура.Номенклатура, ВТ_Номенклатура.Приход, ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) * ВТ_Номенклатура.Приход КАК ЧИСЛО(11, 2)) КАК СуммаПрихода_в_ЗакупочныхЦенах, ВТ_Номенклатура.Период ИЗ ВТ_Номенклатура КАК ВТ_Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Периоды КАК ВТ_Периоды ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры ПО ВТ_Периоды.Период = ЦеныНоменклатуры.Период И ВТ_Периоды.Номенклатура = ЦеныНоменклатуры.Номенклатура И ВТ_Периоды.ТипЦен = ЦеныНоменклатуры.ТипЦен ПО ВТ_Номенклатура.Номенклатура = ВТ_Периоды.Номенклатура |
|||
3
Mitriy
03.07.14
✎
14:25
|
ТипЦен на ВидЦены поменяй только...
|
|||
4
bogdan51
03.07.14
✎
16:11
|
Спасибо.
|
|||
5
floody
03.07.14
✎
16:24
|
в СКД можно еще через соединение наборов, а так (2)
|
|||
6
echo77
04.07.14
✎
06:34
|
(5) можно, но это работает как запрос в цикле - не стоит учить людей плохому :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |