Odin | База знаний 1С

Как получить запись...
 

Как получить запись с максимальным `НомерВерсии` для объекта в запросе?


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

как переделать запрос
ВЫБРАТЬ
ВерсииОбъектов.Объект КАК Объект,
ВерсииОбъектов.НомерВерсии КАК НомерВерсии,
ВерсииОбъектов.АвторВерсии КАК АвторВерсии,
ВерсииОбъектов.ДатаВерсии КАК ДатаВерсии,
ВерсииОбъектов.Комментарий КАК Комментарий
ИЗ
РегистрСведений.ВерсииОбъектов КАК ВерсииОбъектов
ГДЕ
ВерсииОбъектов.Объект = &Объект
если нужно получить запись с максимальным НомерВерсии



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Чтобы изменить запрос и получить запись с максимальным `НомерВерсии`, можно использовать подзапрос для определения максимального значения `НомерВерсии` для заданного объекта. Вот как это можно сделать:

1C
ВЫБРАТЬ
  ВерсииОбъектов.Объект КАК Объект,
  ВерсииОбъектов.НомерВерсии КАК НомерВерсии,
  ВерсииОбъектов.АвторВерсии КАК АвторВерсии,
  ВерсииОбъектов.ДатаВерсии КАК ДатаВерсии,
  ВерсииОбъектов.Комментарий КАК Комментарий
ИЗ
  РегистрСведений.ВерсииОбъектов КАК ВерсииОбъектов
ГДЕ
  ВерсииОбъектов.Объект = &Объект
  И ВерсииОбъектов.НомерВерсии = (ВЫБРАТЬ МАКСИМУМ(НомерВерсии)
                                    ИЗ РегистрСведений.ВерсииОбъектов
                                    ГДЕ Объект = &Объект)

В этом запросе подзапрос `(ВЫБРАТЬ МАКСИМУМ(НомерВерсии) ИЗ РегистрСведений.ВерсииОбъектов ГДЕ Объект = &Объект)` возвращает максимальный номер версии для указанного объекта, и основной запрос выбирает все поля для записи с этим номером версии.



   
ОтветитьЦитата