Skip to main content

Регистры сведений

Прикладной объект конфигурации для хранения произвольных данных в разрезе нескольких измерений.

  • Примеры: Курсы валют (в разрезе валют), Цены (в разрезе номенклатуры и типа цен).

Структура

  • Записи: Основная единица хранения.
  • Измерения: Разрезы, по которым ведется учет (например, Номенклатура, ТипЦены).
  • Ресурсы: Непосредственно хранимая информация (например, Цена, Курс).
  • Реквизиты: Дополнительная произвольная информация к записи.

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

Ключевые свойства и особенности

а) Периодичность

  • Позволяет хранить данные в разрезе времени.
  • Добавляется поле «Период».
  • Для чего: Отслеживание истории изменений (например, история цен).

б) Подчинение регистратору

  • Определяет, как вносятся записи:
    • Независимый: Записи можно вносить вручную или из любого документа.
    • Подчинение регистратору: Записи могут вноситься только документами указанного вида. Добавляется поле «Регистратор».
  • Для чего: Жесткая связь с документами (например, изменение цены только документом «Установка цен»).

в) Уникальность записей

  • Контролируется системой автоматически.
  • Ключ записи формируется из комбинации:
    • Регистратора (если подчинен, но не всегда входит в разряд ключевых полей),
    • Периода (если периодический),
    • Значений всех измерений.
  • Пример: Не может быть двух одинаковых цен на одну номенклатуру в одном типе цен на одну дату.

г) Галка "Основной отбор по периоду" и "Основной отбор" у измерения

Основной отбор и Основной отбор по периоду — это свойства регистра сведений, определяющие логическую единицу обмена данными (грануляцию) в распределённых информационных базах.

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

  • Например, если в основной отбор включено измерение "Товар", то при изменении хотя бы одной записи по этому товару будут переданы все его характеристики.

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

Таким образом, эти свойства:

  • Позволяют объединить несколько физических записей в одну логическую единицу обмена
  • Предотвращают разрыв логической целостности данных при синхронизации между узлами
  • Определяют состав ключа в таблице регистрации изменений: для регистра без регистратора ключ формируется по измерениям с установленным "Основным отбором" и (если включено) по периоду

д) Функциональные возможности (что можно делать)

  • Получение «срезов» — значений ресурсов на заданную дату (последних, первых).

Ответы на частые вопросы

1. Какие таблицы бывают у регистра сведений?

  • Основная таблица записей (_InfoRgXXXX) — где физически хранятся все данные.
  • Виртуальные таблицы «СрезПервых» и «СрезПоследних» — для быстрого получения актуальных значений на дату.
    • Важно: если итоги отключены они рассчитываются на лету иначе они предрассчитываются и хранятся, что позволяет ускорить выполнение запросов к СрезПервых и СрезПоследних.

      Актуализация предрассчитанных итогов выполняется автоматически при записи в регистр, за исключением случаев, когда она принудительно отключается программно.

2. Может ли регистр сведений иметь таблицу итогов?

  • Если на вкладке прочее установить галку "Разрешить итоги: срез первых" или "Разрешить итоги: срез последних"

3. Какие типы можно передавать в параметр «Период» виртуальной таблицы регистра сведений?

  • Дата
  • Граница
  • МоментВремени
  • Неопределено

4. Как программно определить, подчинен регистр сведений или нет?

  • Через объект метаданных

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

  • Для каждого справочника создается отдельная таблица в СУБД, даже если она пустая. Если табличная часть заполняется редко тогда лучше использовать регистр сведений.
  • Для изменения данных нужно загрузить весь объект справочника (ПолучитьОбъект()).

6. В каких случаях при создании набора записей регистра сведений мы НЕ можем установить отбор по измерениям?

  • Только в одном случае: если регистр подчинен регистратору.

7. Как отработает виртуальная таблица регистра сведений срез полседних, если наложить отбор в параметрах ВТ на ресурс?

  • В результат попадет последняя запись (на указанную дату), у которой значение ресурса совпадает с условием отбора.

8. Как реализовать удаление записей регистра сведений при удалении элемента-измерения (например, номенклатуры)?

  • Установить для измерения свойство «Ведущее».

9. Чем отличается запись в регистре сведений от элемента справочника?

  • Элемент справочника имеет уникальную системную ссылку. Даже если удалить и создать объект с теми же реквизитами, это будет новый объект с другой ссылкой.
  • Запись регистра сведений идентифицируется только значениями полей (составом ключа: измерения, период, регистратор). Удаление и создание идентичной записи с точки зрения системы — это та же самая запись.

10. Когда лучше использовать справочник, а когда — регистр сведений?

  • Используйте справочник для хранения списка объектов (сущностей): Товары, Контрагенты, Сотрудники, Организации. То, что имеет код, наименование и является самостоятельным предметом учета.
  • Используйте регистр сведений для хранения:
    • Параметров/атрибутов этих объектов в разрезе (Цена товара, Курс валюты).
    • Данных, требующих истории изменений (периодичность).
    • Любых табличных данных, не являющихся самостоятельными объектами .