Регистры сведений
Прикладной объект конфигурации для хранения произвольных данных в разрезе нескольких измерений.
- Примеры: Курсы валют (в разрезе валют), Цены (в разрезе номенклатуры и типа цен).
Структура
- Записи: Основная единица хранения.
- Измерения: Разрезы, по которым ведется учет (например, Номенклатура, ТипЦены).
- Ресурсы: Непосредственно хранимая информация (например, Цена, Курс).
- Реквизиты: Дополнительная произвольная информация к записи.
Порядок измерений должен быть таким, чтобы наиболее часто используемые в условиях и соединениях измерения располагались первыми. Это обеспечивает эффективное индексирование, сокращает объем обрабатываемых данных и ускоряет выполнение запросов.
Ключевые свойства и особенности
а) Периодичность
- Позволяет хранить данные в разрезе времени.
- Добавляется поле «Период».
- Для чего: Отслеживание истории изменений (например, история цен).
б) Подчинение регистратору
- Определяет, как вносятся записи:
- Независимый: Записи можно вносить вручную или из любого документа.
- Подчинение регистратору: Записи могут вноситься только документами указанного вида. Добавляется поле «Регистратор».
- Для чего: Жесткая связь с документами (например, изменение цены только документом «Установка цен»).
в) Уникальность записей
- Контролируется системой автоматически.
- Ключ записи формируется из комбинации:
- Регистратора (если подчинен, но не всегда входит в разряд ключевых полей),
- Периода (если периодический),
- Значений всех измерений.
- Пример: Не может быть двух одинаковых цен на одну номенклатуру в одном типе цен на одну дату.
г) Галка "Основной отбор по периоду" и "Основной отбор" у измерения
Основной отбор и Основной отбор по периоду — это свойства регистра сведений, определяющие логическую единицу обмена данными (грануляцию) в распределённых информационных базах.
-
Основной отбор задаёт измерения, по которым формируется логическая единица данных. При обмене вместо отдельных записей передаётся весь набор записей, соответствующий комбинации значений этих измерений. Это обеспечивает целостность данных — например, все характеристики одного товара передаются вместе, а не по отдельности.
-
Например, если в основной отбор включено измерение "Товар", то при изменении хотя бы одной записи по этому товару будут переданы все его характеристики.
-
Основной отбор по периоду доступен только для периодических регистров с независимым режимом записи. Если он включён, в логическую единицу обмена дополнительно включается поле Период, что позволяет группировать данные по времени.
Таким образом, эти свойства:
- Позволяют объединить несколько физических записей в одну логическую единицу обмена
- Предотвращают разрыв логической целостности данных при синхронизации между узлами
- Определяют состав ключа в таблице регистрации изменений: для регистра без регистратора ключ формирует ся по измерениям с установленным "Основным отбором" и (если включено) по периоду
д) Функциональные возможности (что можно делать)
- Получение «срезов» — значений ресурсов на заданную дату (последних, первых).
Ответы на частые вопросы
1. Какие таблицы бывают у регистра сведений?
- Основная таблица записей (
_InfoRgXXXX) — где физически хранятся все данные. - Виртуальные таблицы «СрезПервых» и «СрезПоследних» — для быстрого получения актуальных значений на дату.
-
Важно: если итоги отключены они рассчитываются на лету иначе они предрассчитываются и хранятся, что позволяет ускорить выполнение запросов к СрезПервых и СрезПоследних.
Актуализация предрассчитанных итогов выполняется автоматически при записи в регистр, за исключением случаев, когда она принудительно отключается программно.
-
2. Может ли регистр сведений иметь таблицу итогов?
- Если на вкладке прочее установить галку "Разрешить итоги: срез первых" или "Разрешить итоги: срез последних"
3. Какие типы можно передавать в параметр «Период» виртуальной таблицы регистра сведений?
- Дата
- Граница
- МоментВремени
- Неопределено
4. Как программно определить, подчинен регистр сведений или нет?
- Через объект метаданных
5. В чем разница хранения между табличной частью справочника и регистра сведений?
- Для каждого справочника создается отдельная таблица в СУБД, даже если она пустая. Если табличная часть заполняется редко тогда лучше использовать регистр сведений.
- Для изменения данных нужно загрузить весь объект справочника (
ПолучитьОбъект()).
6. В каких случаях при создании набора записей регистра сведений мы НЕ можем установить отбор по измерениям?
- Только в одном случае: если регистр подчинен регистратору.
7. Как отработает виртуальная таблица регистра сведений срез полседн их, если наложить отбор в параметрах ВТ на ресурс?
- В результат попадет последняя запись (на указанную дату), у которой значение ресурса совпадает с условием отбора.
8. Как реализовать удаление записей регистра сведений при удалении элемента-измерения (например, номенклатуры)?
- Установить для измерения свойство «Ведущее».
9. Чем отличается запись в регистре сведений от элемента справочника?
- Элемент справочника имеет уникальную системную ссылку. Даже если удалить и создать объект с теми же реквизитами, это будет новый объект с другой ссылкой.
- Запись регистра сведений идентифицируется только значениями полей (составом ключа: измерения, период, регистратор). Удаление и создание идентичной записи с точки зрения системы — это та же самая запись.
10. Когда лучше использовать справочник, а когда — регистр сведений?
- Используйте справочник для хранения списка объектов (сущностей): Товары, Контрагенты, Сотрудники, Организации. То, что имеет код, наименование и является самостоятельным предметом учета.
- Используйте регистр сведений для хранения:
- Параметров/атрибутов этих объектов в разрезе (Цена товара, Курс валюты).
- Данных, требующих истории изменений (периодичность).
- Любых табличных данных, не являющихся самостоятельными объектами .