Home » 1С Предприятие 8.х » 1Cv8: Работа с периодическими данными
google




1Cv8: Работа с периодическими данными

Хранение периодических данных в Платформе 1С 8 организовано на использовании объекта РегистрСведений. Параметры периодичности указываются в настройках Регистра (вкладка Основные).

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

Возможные варианты:

  • Непериодический — обычный регистр. Уникальность записи по измерениям.
  • В пределах секунды — Уникальность записи по измерениям в пределах 1 секунды. т.е. в разные секунды одной минуты возможно наличие записей с одинаковыми измерениями.
  • В пределах дня — Уникальность данных в течении дня. Чаще всего используется для хранения курсов валют.
  • В пределах месяца.
  • В пределах квартала
  • В пределах года. Обычно используется для хранения учетной политики, которая меняется 1 раз в год. т.е. на каждый год будет по 1 записи в регистре.

Программно работать с периодическими данными можно 2 способами:

  1. Используя запросы (рекомендуемый вариант)
  2. Используя объектный подход

Чаще всего требуется получить значение одного или нескольких ресурсов, поэтому лучше использовать механизм запросов, т.к. мы ограничим выборку данных и соответственно количество типизируемых объектов. Часто в регистре бывает большое количество ресурсов, типизация (приведение к объекту) каждого ресурса лишние затраты ресурсов и времени. Если необходимо получить все ресурсы можно использовать объектный подход, особой разницы уже не будет.

Примечание: при сдаче на сертификат на специалиста в коде допускается использование объектной модели, но не рекомендуется, поэтому лучше сразу привыкайте работать через запрос.

Приведу пример получения данных из Регистра сведений «КурсыВалют» (тестовая конфигурация основана на БСП). Предполагается наличие у отчета реквизитов: Валюта (СправочникСсылка.Валюты), ДатаКурса (Дата). В указанном примере будем получать СрезПоследних на дату (помимо этого есть метод СрезПервых).

Как видно из кода, в Запросе используется виртуальная таблица «СрезПоследних». Использование виртуальной таблицы облегчает получение данных, можно написать запрос без Виртуальных таблиц, но он будет менее читабелен.

Период и Валюта задаются как параметры виртуальной таблицы, такое написание является оптимальным с точки зрения СУБД, выносить их в секцию «ГДЕ» является плохим тоном. Параметр ВТ накладывает ограничение на получаемые данные на первоначальном этапе обработки запроса, секция «где» отрабатывает позже, т.о. Параметр ВТ создает меньшую нагрузку на СУБД.

Примечание: при сдаче на специалиста использование параметров ВТ обязательно, при накладывании условия в секции ГДЕ, при возможности наложения в Параметрах ВТ — будет считаться ошибкой.

Более подробно по работе с Регистрами сведений можно прочесть в уроке № 6.

Скачать пример


Posted on by Ушаков Сергей
Categories: 1С Предприятие 8.х Метки: ,,



Добавить комментарий

Войти с помощью: 

Социальные сети


Я в Twitter
Яндекс.Поиск
Поиск обычный
Счетчики
Рейтинг@Mail.ru Яндекс.Метрика