Имя: Пароль:
1C
1С v8
Цены на дату в документах в запросе
0 igel1969
 
05.02.21
15:58
Здравствуйте!
Пожалуйста, помогите с запросом!
1С 8.3 УТ 10.3

Мне надо отобрать документы за период и еще добавить к результату цены, но не за какую-то конкретную дату (это получается), а за дату документа.
т.е. если в результате запроса документ на 01.10.2020, то по этим строкам цена нужна на эту дату, а для тех строк, где документ от 07.10.2020 нужны цены на 07.10.2020.
В том запросе, что я делаю цены возвращаются нулевые, хотя они на тот момент точно не нулевые.

Вот запрос:

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

А если сделать запрос:
ВЫБРАТЬ
    ПеремещениеТоваровТовары.Номенклатура,
    ПеремещениеТоваровТовары.ЕдиницаИзмерения,
    ПеремещениеТоваровТовары.ХарактеристикаНоменклатуры,
    ПеремещениеТоваровТовары.Количество,
    ЦеныНоменклатурыСрезПоследних.Цена
ИЗ
    Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ТекущаяДата, ) КАК ЦеныНоменклатурыСрезПоследних
        ПО ПеремещениеТоваровТовары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
            И ПеремещениеТоваровТовары.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
            И ПеремещениеТоваровТовары.ЕдиницаИзмерения = ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения
            И (ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен)
ГДЕ
    ПеремещениеТоваровТовары.Ссылка.Проведен
    И ПеремещениеТоваровТовары.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

то возвращает цены, но только на ту дату, какую укажешь в параметре &ТекущаяДата
1 fisher
 
05.02.21
16:02
"Срез последних на каждую дату в запросе"
В гугле. Очень частый вопрос.
2 программистище
 
05.02.21
16:03
3 igel1969
 
05.02.21
16:05
(1) (2) Спасибо.
4 ДядяМитяй
 
05.02.21
17:34
ЦеныНоменклатурыСрезПоследних.Период = ПеремещениеТоваровТовары.Ссылка.Дата

а это-то зачем? во-первых равенства там никогда не будет, во-вторых - срез последних на дату уже что-то подобное реализует.
Основная теорема систематики: Новые системы плодят новые проблемы.