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