8.х СрезПоследних на дату в запросе.

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем o_O, 13 сен 2011.

  1. TopicStarter Overlay
    o_O
    Offline

    o_O Опытный в 1С

    Регистрация:
    18 июн 2010
    Сообщения:
    234
    Симпатии:
    0
    Баллы:
    26
    Доброго всем дня!

    есть запрос:

    Код:
    |SELECT
    |	ТЧ.Ref.Date AS vDate,
    |	ТЧ.Ref AS Документ,
    |FROM
    |	Document.РасходнаяНакладная.TabularPart AS ТЧ
    |	INNER JOIN InformationRegister.Статусы.SliceLast(&Date) AS                        
    |СтатусыSliceLast
    |	ON ТЧ.Товар = СтатусыSliceLast.Товар
    ...
    
    подскажите как параметр &Date можно заменить на vDate.

    т.е. вот так не работает: INNER JOIN InformationRegister.Статусы.SliceLast(vDate) AS ....
    и так тоже не работает: INNER JOIN InformationRegister.Статусы.SliceLast(ТЧ.Ref.Date) AS ....
  2. o1eg
    Offline

    o1eg Опытный в 1С

    Регистрация:
    25 июн 2006
    Сообщения:
    235
    Симпатии:
    0
    Баллы:
    26
    Код:
    Запрос.УстановитьПараметр("Date", vDate);
    
  3. TopicStarter Overlay
    o_O
    Offline

    o_O Опытный в 1С

    Регистрация:
    18 июн 2010
    Сообщения:
    234
    Симпатии:
    0
    Баллы:
    26
    я имел ввиду vDate, который в самом запросе
    Код:
    ТЧ.Ref.Date AS vDate
    
    .
  4. Oleg_NSK
    Offline

    Oleg_NSK Опытный в 1С

    Регистрация:
    25 окт 2010
    Сообщения:
    164
    Симпатии:
    0
    Баллы:
    26
    Ты хочешь получить срез последних для регистра сведений на дату документа с которым ты соединяешь этот регистр сведений? Так нельзя. :)
  5. TopicStarter Overlay
    o_O
    Offline

    o_O Опытный в 1С

    Регистрация:
    18 июн 2010
    Сообщения:
    234
    Симпатии:
    0
    Баллы:
    26
    Жаль. Спасибо!
  6. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    а если попробовать не через запрос, а программно в цикле по условию прогнать? наверное только подольше будет...
  7. shurikvz
    Online

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Необходимо сделать соединение не с виртуальной таблицей СрезПоследних, а с реальной регистра, при этом поставить условие связки, что Период в РС не больше, чем vDate, потом сгруппировать, используя агрегатную функцию МАКСИМУМ() по полю Период.
  8. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    Код:
    ВЫБРАТЬ
    ПоступлениеТоваровУслугТовары.Номенклатура,
    МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период
    ПОМЕСТИТЬ ДокТЧ
    ИЗ
    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    ПО ПоступлениеТоваровУслугТовары.Ссылка.Дата >= ЦеныНоменклатуры.Период
    
    СГРУППИРОВАТЬ ПО
    ПоступлениеТоваровУслугТовары.Номенклатура;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ДокТЧ.Номенклатура,
    ДокТЧ.Период,
    ЦеныНоменклатуры.Цена
    ИЗ
    ДокТЧ КАК ДокТЧ
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    ПО ДокТЧ.Период = ЦеныНоменклатуры.Период
    И ДокТЧ.Номенклатура = ЦеныНоменклатуры.Номенклатура
    
    в примере не забыть про тип цен и характеристики

Поделиться этой страницей