Открыть сервис

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

Регистр сведений — это прикладной объект конфигурации в платформе «1С:Предприятие», предназначенный для хранения и обработки структурированной информации, изменяющейся во времени. В отличие от справочников, которые хранят условно-постоянные данные (номенклатуру, контрагентов), регистры сведений фиксируют значения определённых показателей на конкретные моменты времени или за определённые периоды. Они являются ключевым механизмом для реализации аналитического учёта, хранения курсов валют, цен номенклатуры, ставок налогов, графиков работы и других данных, где важна история изменений.

История и развитие

Концепция регистров сведений была введена в платформе «1С:Предприятие» версии 7.7, где они назывались «регистрами» и имели ограниченные возможности. В версии 8.0 (выпущена в 2003 году) механизм был значительно переработан: появилось разделение на регистры сведений и регистры накопления, а также возможность создания периодических и подчинённых регистраторов записей. В последующих версиях (8.1, 8.2, 8.3) функциональность расширялась: были добавлены режимы записи (подчинение регистратору и независимая), поддержка агрегатов для ускорения отчётов, а также интеграция с механизмом расширений конфигурации.

Структура и ключевые элементы

Регистр сведений представляет собой многомерную таблицу, состоящую из следующих элементов:

  • Измерения — набор полей, которые определяют разрез данных (например, «Номенклатура», «Склад», «Организация»). Совокупность измерений задаёт уникальность записи.
  • Ресурсы — поля, хранящие числовые или строковые значения (например, «Цена», «Количество», «Ставка»).
  • Реквизиты — дополнительные поля, не являющиеся ни измерениями, ни ресурсами, но несущие служебную или справочную информацию (например, «Комментарий», «Ответственный»).

Каждая запись регистра сведений — это кортеж, содержащий значения измерений, ресурсов и реквизитов. Записи могут быть периодическими (с полем «Период») или непериодическими.

Классификация регистров сведений

Регистры сведений классифицируются по нескольким признакам:

По периодичности

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

По режиму записи

  • Подчинённые регистратору — записи создаются и изменяются только через документы-регистраторы. Это обеспечивает транзакционность и возможность отката данных. Пример: «Цены номенклатуры» (устанавливаются документом «Установка цен номенклатуры»).
  • Независимые — записи могут вводиться и изменяться напрямую (через форму списка или программно), без привязки к документу. Пример: «Графики работы сотрудников».

По способу хранения

  • Регистры остатков (в терминах платформы — регистры накопления) — хранят остатки и обороты. Регистры сведений, напротив, хранят произвольные срезы данных.
  • Регистры сведений с агрегатами — поддерживают предварительно рассчитанные итоги для ускорения отчётов. Используются при больших объёмах данных.

Применение в типовых конфигурациях

Регистры сведений широко используются во всех типовых конфигурациях «1С», таких как «Бухгалтерия предприятия», «Управление торговлей», «Зарплата и управление персоналом».

Примеры в конфигурации «1С:Бухгалтерия предприятия» (ред. 3.0)

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

Примеры в конфигурации «1С:Управление торговлей» (ред. 11)

  • Цены номенклатуры — периодический регистр, подчинённый документу «Установка цен номенклатуры». Позволяет отслеживать историю изменения цен.
  • Склады организаций — регистр, хранящий информацию о принадлежности складов к организациям.
  • Взаиморасчёты с контрагентами — в некоторых конфигурациях реализован как регистр сведений с агрегатами для быстрого получения сальдо.

Примеры в конфигурации «1С:Зарплата и управление персоналом» (ред. 3.0)

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

Технические особенности и механизмы

Запись и чтение

Для работы с регистрами сведений используется встроенный язык запросов. Пример программной записи (на встроенном языке 1С): `` Запись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи(); Запись.Период = ТекущаяДата(); Запись.Валюта = Справочники.Валюты.НайтиПоКоду("840"); Запись.Курс = 75.50; Запись.Записать(); ` Чтение выполняется через запросы с использованием виртуальных таблиц, таких как СрезПоследних (для получения последнего значения по каждому измерению) или СрезПервых` (для получения первого значения).

Индексы и производительность

Для ускорения поиска по измерениям платформа автоматически создаёт индексы. При большом объёме данных (миллионы записей) рекомендуется настраивать агрегаты и использовать фильтрацию по измерениям в запросах. В версиях платформы 8.3.10 и выше появилась поддержка полнотекстового поиска по реквизитам регистров сведений.

Ограничения

  • Максимальное количество измерений — 10 (в версиях до 8.3.10 — 8).
  • Максимальное количество ресурсов — 20.
  • Максимальное количество реквизитов — 20.

Критика и ограничения

Несмотря на широкую функциональность, регистры сведений имеют ряд недостатков, отмечаемых разработчиками:

  1. Сложность отладки — ошибки в логике записи (например, нарушение уникальности) могут приводить к неочевидным проблемам в отчётах.
  2. Избыточность данных — при неправильном проектировании (например, использование периода с точностью до секунды при ежедневном обновлении) объём данных может расти экспоненциально.
  3. Отсутствие транзакционной целостности при независимой записи — если несколько пользователей одновременно изменяют один и тот же набор измерений, возможны конфликты, которые платформа не всегда может корректно разрешить.
  4. Ограниченная поддержка в облачных версиях — в сервисе «1С:Фреш» (облачная версия платформы) работа с регистрами сведений имеет некоторые ограничения по объёму и скорости.

Интересные факты

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

Источники

  1. Радченко М.Г., Хрусталёва Е.Ю. «1С:Предприятие 8.3. Практическое пособие разработчика». — М.: 1С-Паблишинг, 2020.
  2. Документация к платформе «1С:Предприятие 8.3» — раздел «Регистры сведений».
  3. Официальный курс «Конфигурирование в системе 1С:Предприятие 8.3» (Фирма «1С»).
  4. Статья «Регистры сведений в 1С:Предприятие 8» на портале «Инфостарт» (infostart.ru).
  5. Книга «Разработка сложных отчётов в 1С:Предприятие 8» — глава 4 «Использование регистров сведений».

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →