Таблица среза последних регистра сведений в языке запросов

Имя таблицы — имя-регистра-сведений.СрезПоследних.

Например, выбрать записи с измерением Товар, ресурсом Цена и реквизитом Примечание из регистра Цены, у которых значение поля Период меньше или равно переданному, можно следующим образом:

пер Запрос = Запрос{ВЫБРАТЬ
                        Цены.Товар КАК Товар,
                        Цены.Цена КАК Цена,
                        Цены.Примечание КАК Примечание
                     ИЗ
                        Цены.СрезПоследних(%ПараметрПериод) КАК Цены}

Поля

Эта таблица содержит следующие поля:

имя-измерения
Значение измерения записи регистра сведений
имя-ресурса
Значение ресурса записи регистра сведений
имя-реквизита
Значение реквизита записи регистра сведений
КлючЗаписи
имя-регистра-сведений.КлючЗаписи.
Период
Момент | ДатаВремя | Дата. Период, к которому относится запись регистра. Это поле есть только у периодических регистров сведений
СледующийПериод
Имеет значение поля Период следующей записи с такими же значениями измерений или максимальное значение типа поля Период, если следующей записи нет. Доступно только для чтения. Это поле есть только у периодических регистров сведений. Пример:
знч Запрос = Запрос{

        ВЫБРАТЬ
            Период,
            Курс,
            Валюта,
            СледующийПериод
        ИЗ
            Курсы
        }

знч Результат = Запрос.Выполнить().Единственный()
пер СледующийПериод = Результат.СледующийПериод

Для того чтобы проверить наличие следующего периода у записи в таблице периодического регистра сведений, можно сравнить значение поля СледующийПериод с максимальным значением типа поля Период. Если они равны — значит значение следующего периода отсутствует для данной записи.

Получить максимальное значение типа поля Период можно за счет использования встроенного строкового литерала соответствующего типа: Тип{Максимум}. Например, если поле Период имеет тип ДатаВремя, запрос может выглядеть следующим образом:
ВЫБРАТЬ
    УчетРабочегоВремениСрезПоследних.Период КАК Период,
    ВЫБОР
        КОГДА УчетРабочегоВремени.СледующийПериод == ДатаВремя{Максимум} ТОГДА ДатаВремя{}
        ИНАЧЕ УчетРабочегоВремени.СледующийПериод
    КОНЕЦ КАК ПериодОкончания,
    УчетРабочегоВремениСрезПоследних.Статус КАК Статус,
    УчетРабочегоВремениСрезПоследних.Комментарий КАК Комментарий
ИЗ
    УчетРабочегоВремени.СрезПоследних(%ДатаСреза) КАК УчетРабочегоВремениСрезПоследних

Параметры

Эта таблица содержит следующий параметр:

Период
Граница, включая которую будут получаться записи для формирования среза.
Результат будет формироваться на основе записей, у которых значение поля Период меньше или равно указанному значению параметра. При наличии нескольких записей с одинаковыми значениями измерений в результате будет использоваться запись с самым большим значением периода.
Если значение параметра равно Неопределено, то получаются самые актуальные (с максимальным значением поля Период) записи.
Совет: В качестве значения параметра можно использовать неконстантные выражения, в том числе поля других таблиц, доступные для использования в условии соединения этой таблицы.
Предупреждение: Если выражение, по которому вычисляется значение параметра, зависит от значений других полей (не является константным), то:
  • Тип значения параметра не может быть составным без учета Null. То есть, например, Null и ДатаВремя можно, а ДатаВремя и Неопределено — нельзя.
  • В выражении нельзя использовать поля виртуальной таблицы (той, от которой параметр).
  • Таблицу нельзя использовать в полном соединении.
Предупреждение: Если выражение, по которому вычисляется значение параметра, является константным, то в составе типов значения параметра не допускается значение Null.

Подробнее о периодическом регистре сведений.