Перейти к основному содержимому

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

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

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

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

Поля

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

  • имя-измерения

    Значение измерения записи регистра сведений

  • имя-ресурса

    Значение ресурса записи регистра сведений

  • имя-реквизита

    Значение реквизита записи регистра сведений

  • КлючЗаписи

    имя-регистра-сведений.КлючЗаписи.

  • Период

    Момент | ДатаВремя | Дата. Период, к которому относится запись регистра. Это поле есть только у периодических регистров сведений

  • СледующийПериод

    Имеет значение поля Период следующей записи с такими же значениями измерений или максимальное значение типа поля Период, если следующей записи нет. Доступно только для чтения. Это поле есть только у периодических регистров сведений. Пример:

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

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

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

    Получить максимальное значение типа поля Период можно за счет использования встроенного строкового литерала соответствующего типа: *Тип*{Максимум}. Например, если поле Период имеет тип ДатаВремя, запрос может выглядеть следующим образом:

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

Параметры

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

  • Период

    Граница, включая которую будут получаться записи для формирования среза.

    Результат будет формироваться на основе записей, у которых значение поля Период меньше или равно указанному значению параметра. При наличии нескольких записей с одинаковыми значениями измерений в результате будет использоваться запись с самым большим значением периода.

    Если значение параметра равно Неопределено, то получаются самые актуальные (с максимальным значением поля Период) записи.

совет

В качестве значения параметра можно использовать неконстантные выражения, в том числе поля других таблиц, доступные для использования в условии соединения этой таблицы.

важно

Если выражение, по которому вычисляется значение параметра, зависит от значений других полей (не является константным), то:

  • Тип значения параметра не может быть составным без учета Null. То есть, например, Null и ДатаВремя можно, а ДатаВремя и Неопределено — нельзя.
  • В выражении нельзя использовать поля виртуальной таблицы (той, от которой параметр).
  • Таблицу нельзя использовать в полном соединении.
важно

Если выражение, по которому вычисляется значение параметра, является константным, то в составе типов значения параметра не допускается значение Null.

См. также