Использование виртуальных таблиц регистров сведений в 1С

Для чего применяются

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

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

Они удобны по двум причинам:

  • Не нужно вручную искать максимальный или минимальный период по каждой комбинации измерений.
  • Оптимальный способ получения данных обеспечивает сама платформа.

Какие бывают

Виртуальные таблицы есть только у периодических регистров сведений. Для непериодических регистров сведений такие таблицы не формируются.

Вид таблицыЧто возвращает
СрезПоследнихВозвращает наиболее позднюю запись на указанную дату для каждой комбинации измерений
СрезПервыхВозвращает наиболее раннюю запись на указанную дату для каждой комбинации измерений

Виртуальная таблица СрезПоследних

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

Особенности:

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

Параметры:

ПараметрНазначение
ПериодДата, на которую нужно получить последние значения 
УсловиеОтбор по измерениям регистра сведений 

Пример применения: получить цену номенклатуры на дату документа. В этом случае обычно передают дату документа в параметр Период, а в Условие — отбор по нужной номенклатуре или типу цен.

ВЫБРАТЬ
    Цены.Номенклатура,
    Цены.Цена
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
        &Дата,
        Номенклатура = &Номенклатура
    ) КАК Цены

Виртуальная таблица СрезПервых

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

Особенности:

  • Также работает только для периодических регистров сведений.
  • Дата отбора учитывается включительно.
  • В результат попадают только активные записи.

Параметры:

ПараметрНазначение
ПериодДата, относительно которой строится срез первых записей 
УсловиеОтбор по измерениям регистра 

На практике СрезПервых используют, когда нужно определить начальное значение параметра, первое назначение тарифа или первую зафиксированную настройку в пределах нужного периода.

// Первое значение на дату
ВЫБРАТЬ
    Настройки.Пользователь,
    Настройки.Значение
ИЗ
    РегистрСведений.НастройкиПользователей.СрезПервых(
        &Дата,
        Пользователь = &Пользователь
    ) КАК Настройки

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Отправьте форму и мы вам перезвоним

Отправляя форму вы соглашаетесь с политикой конфиденциальности и даете согласие на обработку персональных данных компании ИП Рыжиченко Антону Ивановичу
Сайт itviar.ru использует cookie для персонализации и хранения настроек.
Отправляя форму вы соглашаетесь с политикой конфиденциальности и даете согласие на обработку персональных данных компании ИП Рыжиченко Антону Ивановичу