Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Получить последние без среза

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

тип того:

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

      |ВЫБРАТЬ
      |    ЦеныНоменклатуры.Цена КАК Цена
      |ИЗ
      |    ПоследнийПериод КАК ПоследнийПериод
      |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
      |        ПО ПоследнийПериод.Период = ЦеныНоменклатуры.Период"
   bfss-732
 
10 - 06.06.20 - 14:59
(5) Тут мы выберим на дату, а надо последние цены (даты разные)
   Kassern
 
11 - 06.06.20 - 14:59
(9) Только условия нужно убрать из первой таблицы)
   bfss-732
 
12 - 06.06.20 - 15:02
(9)  ЦеныНоменклатуры.Период МЕЖДУ &ДатаН И &ДатаК
Тут мы выберем цены на дату (период), а надо последние цены (даты разные)
   bfss-732
 
13 - 06.06.20 - 15:03
Цены должны быть последние, даты последних цен разные, срезам последних пользоваться нельзя
   Kassern
 
14 - 06.06.20 - 15:06
(13) Еще проще
"ВЫБРАТЬ
      |    МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период,
      |    ЦеныНоменклатуры.Номенклатура КАК Номенклатура
      |ПОМЕСТИТЬ ПоследнийПериод
      |ИЗ
      |    РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
      |
      |СГРУППИРОВАТЬ ПО
      |    ЦеныНоменклатуры.Номенклатура
      |;
      |
      ////////////////////////////////////////////////////////////////////////////////

      |ВЫБРАТЬ
      |    ПоследнийПериод.Период КАК Период,
      |    ПоследнийПериод.Номенклатура КАК Номенклатура,
      |    ЦеныНоменклатуры.Цена КАК Цена
      |ИЗ
      |    ПоследнийПериод КАК ПоследнийПериод
      |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
      |        ПО ПоследнийПериод.Период = ЦеныНоменклатуры.Период
      |            И ПоследнийПериод.Номенклатура = ЦеныНоменклатуры.Номенклатура"
   bfss-732
 
15 - 06.06.20 - 15:08
Это ближе к теме))) Спасибо!!!!!!!!!!! ща попробую
   bfss-732
 
16 - 06.06.20 - 15:28
(14) Почти правильно. Одна номеклатура и к ней две цены, одна из них правильная
   bfss-732
 
17 - 06.06.20 - 15:29
Вид цены не  указал. Спасибо!

Список тем форума
Рекламное место пустует  Рекламное место пустует
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс, 1996 г.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.