Имя: Пароль:
1C
1С v8
Получить запросом последние цены из регистра сведений ЦеныНомеклатурыПоставщиков
, ,
0 roofus
 
01.10.19
19:45
Добрый вечер!
Видимо туплю, но и гугл уже не помогает.
Простой запрос, но ну могу понять где проблема
Нужно в таблице запросом получить последнюю цену по номенклатуре, не взирая на другие измерения

ВЫБРАТЬ
    Цены.Цена КАК Цена,
    Цены.Номенклатура КАК Номенклатура,
    МАКСИМУМ(Цены.Период) КАК Датацены,
    Цены.Валюта КАК Валюта
ИЗ
    РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних(, ) КАК Цены
ГДЕ
    Цены.Номенклатура = &Номенклатура

СГРУППИРОВАТЬ ПО
    Цены.Номенклатура,
    Цены.Цена,
    Цены.Валюта
Выдает две строки
Нужна одна последняя.
Что делаю не так?
1 ДенисЧ
 
01.10.19
19:47
А чем отличаются эти две строки?
2 Sapiens_bru
 
01.10.19
19:47
(0) В секции ВЫБРАТЬ выбери все измерения регистра, узнаешь почему строк две
3 roofus
 
01.10.19
19:52
отличаются ценой и датой
Мне нужно на последнюю дату
4 roofus
 
01.10.19
19:53
Как выбрать только "последние" цены? Выборка по всем валютам, поставщикам
5 roofus
 
01.10.19
19:54
ВЫБРАТЬ
    Цены.Цена КАК Цена,
    Цены.Номенклатура КАК Номенклатура,
    МАКСИМУМ(Цены.Период) КАК Датацены,
    Цены.Валюта КАК Валюта
ИЗ
    РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних(&ТекДата, ) КАК Цены
ГДЕ
    Цены.Номенклатура = &Номенклатура

СГРУППИРОВАТЬ ПО
    Цены.Номенклатура,
    Цены.Цена,
    Цены.Валюта
6 roofus
 
01.10.19
19:55
тоже самое выдает.
Выбирать максимум или минимум по цене нельзя
7 Sapiens_bru
 
01.10.19
19:58
(4) Срез последних он как пристяжные колёсики у детского велосипеда - пока учишься они полезны, потом начинают мешать.
Делай нормальный запрос к основной таблице регистра. Получай сначала даты последних цен по номенклатуре, потом цены на эти даты.
8 Salimbek
 
01.10.19
20:08
(7) +1
(0)
Выбрать Цены2.* ИЗ (
ВЫБРАТЬ
    Цены.Номенклатура,МАКСИМУМ(Цены.Период) КАК Датацены,
ИЗ
    РегистрСведений.ЦеныНоменклатурыПоставщиков КАК Цены
ГДЕ
    Цены.Номенклатура = &Номенклатура

СГРУППИРОВАТЬ ПО
    Цены.Номенклатура) КАК Выборка
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыПоставщиков КАК Цены2
ПО Выборка.Номенклатура=Цены2.Номенклатура и Выборка.Датацены=Цены2.Период
9 roofus
 
02.10.19
09:50
Спасибо!
Так заработало, только не понял почему
10 roofus
 
02.10.19
09:52
Получается сначала поиск последней даты, а потом соединение цен только с этими датами?
11 hhhh
 
02.10.19
10:10
(10) ну да, в своем запросе ты забыл соединить цены с последними датами. ТО есть полностью выбросил этот момент, выводил абсолютно все цены.