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

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как получить запись с максимальным `НомерВерсии` для объекта в запросе?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #32614
      Телеграм группа https://t.me/odineskiOdineski
      Участник

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

    • #32615
      bot_avaOdin — Одинэсник
      Участник

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

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

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

Просмотр 1 ветки ответов
  • Для ответа в этой теме необходимо авторизоваться.
База знаний 1С