Имя: Пароль:
1C
1С v8
Получить последние без среза
0 bfss-732
 
06.06.20
14:38
Привет всем!
Переодический регистр сведений, как получить последние цены без вирт.табл срез последних?
1 Ёпрст
 
06.06.20
14:44
Запросом
2 Kassern
 
06.06.20
14:46
(0) РегистрыСведений.ЦеныНоменклатуры.ПолучитьПоследнее(Дата,Отбор)
Или же, если регилия не позволяет использовать срез. последних, просто запросом получить таблицу ЦеныНоменклатуры и отборами отобрать нужные строки
3 bfss-732
 
06.06.20
14:48
(1) Какой должен быть запрос?
4 Kassern
 
06.06.20
14:50
(3) отбираете в запросе интересующую таблицу, в условиях выбираете Период МЕЖДУ &ДатаН &ДатаК, Отбираете по виду цены, если нужно, выбираете поля, которые нужны из таблицы...
5 Kassern
 
06.06.20
14:52
(3) Например
"ВЫБРАТЬ
     |    ЦеныНоменклатуры.Цена КАК Цена
     |ИЗ
     |    РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
     |ГДЕ
     |    ЦеныНоменклатуры.Период МЕЖДУ &ДатаН И &ДатаК
     |    И ЦеныНоменклатуры.ВидЦены = &ВидЦены
     |    И ЦеныНоменклатуры.Номенклатура = &Номенклатура"
6 Ёпрст
 
06.06.20
14:52
(3)
запрос с группировкой по максимум дата и это все в фильтр к основной табличке РС..
усё

тип того:

выбрать нечто, цена из РегистрСведений.Твой
ГДЕ (период,нечто) в (выбрать максимум(период), нечто из РегистрСведений.Твой Сгруппировать по нечто)
7 Kassern
 
06.06.20
14:54
(0) Я все равно не понимаю, почему нельзя воспользоваться срез последних? Для этого и создавались виртуальные таблицы, чтобы быстро получать нужные значения!
8 bfss-732
 
06.06.20
14:57
(7) такое условие и точка, считай что это задача как альтернативный вариант среза последних
9 Kassern
 
06.06.20
14:59
(8) Первый вариант отчета выводит цены за период с отбором, если тебе нужны все цены по последнему периоду, то можно извратиться вот так)))
"ВЫБРАТЬ ПЕРВЫЕ 1
      |    ЦеныНоменклатуры.Период КАК Период
      |ПОМЕСТИТЬ ПоследнийПериод
      |ИЗ
      |    РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
      |ГДЕ
      |    ЦеныНоменклатуры.Период МЕЖДУ &ДатаН И &ДатаК
      |    И ЦеныНоменклатуры.ВидЦены = &ВидЦены
      |    И ЦеныНоменклатуры.Номенклатура = &Номенклатура
      |
      |УПОРЯДОЧИТЬ ПО
      |    Период УБЫВ
      |;
      |
      |////////////////////////////////////////////////////////////////////////////////
      |ВЫБРАТЬ
      |    ЦеныНоменклатуры.Цена КАК Цена
      |ИЗ
      |    ПоследнийПериод КАК ПоследнийПериод
      |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
      |        ПО ПоследнийПериод.Период = ЦеныНоменклатуры.Период"
10 bfss-732
 
06.06.20
14:59
(5) Тут мы выберим на дату, а надо последние цены (даты разные)
11 Kassern
 
06.06.20
14:59
(9) Только условия нужно убрать из первой таблицы)
12 bfss-732
 
06.06.20
15:02
(9)  ЦеныНоменклатуры.Период МЕЖДУ &ДатаН И &ДатаК
Тут мы выберем цены на дату (период), а надо последние цены (даты разные)
13 bfss-732
 
06.06.20
15:03
Цены должны быть последние, даты последних цен разные, срезам последних пользоваться нельзя
14 Kassern
 
06.06.20
15:06
(13) Еще проще
"ВЫБРАТЬ
      |    МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период,
      |    ЦеныНоменклатуры.Номенклатура КАК Номенклатура
      |ПОМЕСТИТЬ ПоследнийПериод
      |ИЗ
      |    РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
      |
      |СГРУППИРОВАТЬ ПО
      |    ЦеныНоменклатуры.Номенклатура
      |;
      |
      |////////////////////////////////////////////////////////////////////////////////
      |ВЫБРАТЬ
      |    ПоследнийПериод.Период КАК Период,
      |    ПоследнийПериод.Номенклатура КАК Номенклатура,
      |    ЦеныНоменклатуры.Цена КАК Цена
      |ИЗ
      |    ПоследнийПериод КАК ПоследнийПериод
      |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
      |        ПО ПоследнийПериод.Период = ЦеныНоменклатуры.Период
      |            И ПоследнийПериод.Номенклатура = ЦеныНоменклатуры.Номенклатура"
15 bfss-732
 
06.06.20
15:08
Это ближе к теме))) Спасибо!!!!!!!!!!! ща попробую
16 bfss-732
 
06.06.20
15:28
(14) Почти правильно. Одна номеклатура и к ней две цены, одна из них правильная
17 bfss-732
 
06.06.20
15:29
Вид цены не  указал. Спасибо!
AdBlock убивает бесплатный контент. 1Сергей