Имя: Пароль:
1C
1С v8
Подскажите Запрос цены на номенклатуру на различные даты?
0 ArPlus
 
17.05.12
23:52
Например в типовой УТ надо найти актуальную цену (указанного вида) на дату документа на каждую номенклатуру?
Колонки:
Ссылка документа
Номенклатура
Цена на данную дату

Я что то такое делал, сейчас что то мозги закисли. Не могу сообразить.
1 Лефмихалыч
 
18.05.12
00:05
Запрос к виртуальной таблице СрезПоследних периодического регистра ЦеныНоменклатуры. Первый параметр виртуальной таблицы - дата, на которую нужно получить значение ресурсов
2 ArPlus
 
18.05.12
07:19
ВЫБРАТЬ
   ЦеныНоменклатуры.Номенклатура,
   ЦеныНоменклатуры.Период КАК ПериодНач,
   ЦеныНоменклатуры.Цена * ЕСТЬNULL(ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент, 1) КАК Цена,
   МИНИМУМ(ЕСТЬNULL(ЦеныНоменклатуры1.Период, &ДатаКон)) КАК ПериодКон,
   ЦеныНоменклатуры.Характеристика
ИЗ
   РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры1
       ПО ЦеныНоменклатуры.Номенклатура = ЦеныНоменклатуры1.Номенклатура
           И ЦеныНоменклатуры.Период < ЦеныНоменклатуры1.Период
           И ЦеныНоменклатуры.Характеристика = ЦеныНоменклатуры1.Характеристика
ГДЕ
   ЦеныНоменклатуры.Период МЕЖДУ &ДатаНач И &ДатаКон
   И ЦеныНоменклатуры.ВидЦен = &ВидЦен
   И ЦеныНоменклатуры1.ВидЦен = &ВидЦен

СГРУППИРОВАТЬ ПО
   ЦеныНоменклатуры.Номенклатура,
   ЦеныНоменклатуры.Период,
   ЦеныНоменклатуры.Характеристика,
   ЦеныНоменклатуры.Цена * ЕСТЬNULL(ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент, 1)

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   ЦеныНоменклатурыСрезПоследних.Номенклатура,
   ЦеныНоменклатурыСрезПоследних.Период,
   ЦеныНоменклатурыСрезПоследних.Цена * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения.Коэффициент, 1),
   ЕСТЬNULL(ЦеныНоменклатурыСрезПервых.Период, &ДатаКон),
   ЦеныНоменклатурыСрезПоследних.Характеристика
ИЗ
   РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаНач, ВидЦен = &ВидЦен) КАК ЦеныНоменклатурыСрезПоследних
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПервых(&ДатаНач, ВидЦен = &ВидЦен) КАК ЦеныНоменклатурыСрезПервых
       ПО ЦеныНоменклатурыСрезПоследних.Период <> ЦеныНоменклатурыСрезПервых.Период
           И ЦеныНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатурыСрезПервых.Номенклатура
           И ЦеныНоменклатурыСрезПоследних.Характеристика = ЦеныНоменклатурыСрезПервых.Характеристика
3 ArPlus
 
18.05.12
07:20
Не выходит последняя цена до датыкон... Что исправить?
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший