Для чего применяются
Виртуальные таблицы регистров сведений применяются для быстрого получения актуальных или первых значений данных без написания сложных запросов к основной таблице регистра. Платформа сама реализует нужную логику отбора записей по времени, поэтому разработчик получает более простой и надежный запрос.
Основная задача виртуальных таблиц регистра сведений — получить одно значение на набор измерений в нужной точке времени. Это особенно полезно для цен, курсов валют, настроек, тарифов и других данных, которые меняются во времени.
Они удобны по двум причинам:
- Не нужно вручную искать максимальный или минимальный период по каждой комбинации измерений.
- Оптимальный способ получения данных обеспечивает сама платформа.
Какие бывают
Виртуальные таблицы есть только у периодических регистров сведений. Для непериодических регистров сведений такие таблицы не формируются.

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