К статье
Практический материал

Разработка и Конфигурация · 12 мин

Регистры сведений в 1С: какие бывают и как выбрать нужный тип

Какие бывают регистры сведений в 1С: периодические, независимые, подчинённые регистратору. Отличия, режимы записи, примеры и типичные ошибки при выборе.

Регистр сведений — объект метаданных 1С, который хранит информацию в разрезе заданных измерений без обязательной привязки к документу. Курсы валют, цены номенклатуры, адреса контрагентов, штрихкоды — всё это классические примеры регистров сведений. Отличием от справочника является то, что значение зависит от комбинации измерений и, при необходимости, от периода или документа-регистратора.

Выбор типа регистра определяется двумя независимыми характеристиками: периодичностью (нужен ли учёт даты) и режимом записи (кто создаёт записи — пользователь напрямую или документ). Комбинация этих параметров даёт четыре основных вида регистров сведений, и ошибка на этапе проектирования приводит к переделке структуры данных и потере истории.

Ниже разобраны все виды регистров сведений, их отличия, практические сценарии применения и критерии выбора. Материал ориентирован на разработчиков и внедренцев, работающих с управляемыми приложениями на платформе 1С:Предприятие 8.

Из чего складывается классификация регистров сведений

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

Второй признак — режим записи. Независимый регистр заполняется напрямую: пользователем через форму списка, обработкой или кодом. Регистр, подчинённый регистратору, заполняется только движениями документа — каждая запись жёстко привязана к документу-регистратору и удаляется вместе с отменой его проведения.

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

Независимый непериодический регистр

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

Такой регистр уместен, когда значение справедливо «на данный момент» и предыдущее значение не представляет интереса. Если через месяц после внедрения бухгалтер спросит «а какая цена была в прошлом квартале» — непериодический регистр ответа не даст, данные безвозвратно перезаписаны.

Записать значение программно можно через менеджер записи или набор записей:

bsl
МенеджерЗаписи = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Штрихкод = "4601234567890";
МенеджерЗаписи.Номенклатура = НоменклатураСсылка;
МенеджерЗаписи.Записать();

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

Независимый периодический регистр

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

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

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

Регистр, подчинённый регистратору

Записи такого регистра создаются исключительно движениями документа при проведении. Каждая запись содержит ссылку на регистратор, и отмена проведения документа автоматически удаляет его записи. Это гарантирует согласованность: данные в регистре всегда соответствуют проведённым документам.

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

Периодичность здесь определяется датой документа. Формально можно создать подчинённый регистратору непериодический регистр, но на практике такой вариант почти не используется: без периода теряется история, а ведение документами без истории обычно не имеет смысла.

Сравнение четырёх видов регистров сведений

Вид регистраКто создаёт записиИсторияТиповой пример
Независимый непериодическийПользователь, кодНетШтрихкоды, соответствия объектов
Независимый периодическийПользователь, кодДа, по полю «Период»Курсы валют, настройки
Подчинённый регистратору непериодическийДокументНетРедко применяется
Подчинённый регистратору периодическийДокументДа, по дате документаЦены номенклатуры, статусы

Различие в способе записи влияет и на права доступа. Для независимого регистра достаточно прав на сам регистр. Для подчинённого пользователю нужны права на документ-регистратор, а доступ к записям регистра обычно ограничивают чтением.

Как выбрать вид регистра

Независимый непериодический

Значение актуально только сейчас, история не нужна, документов нет. Минимальные накладные расходы.

Независимый периодический

Нужна история, но изменения не оформляются документами — например, загрузка курсов из внешнего источника.

Подчинённый регистратору периодический

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

Как выбрать вид регистра: практический алгоритм

Принятие решения сводится к двум вопросам. Первый: изменение значения должно оформляться документом с датой, автором и возможностью отмены? Если да — регистр подчинён регистратору. Второй: нужна ли история значений или достаточно текущего состояния? Если нужна — регистр периодический.

Порядок выбора типа регистра
  1. 1
    Определите, кто инициирует изменение: пользователь напрямую или документ
  2. 2
    Выясните у аналитика или пользователей, потребуется ли история значений за прошлые даты
  3. 3
    Если документ нужен — создайте документ-регистратор и включите его в состав движений регистра
  4. 4
    Если история нужна без документа — установите периодичность в пределах дня или секунды по частоте изменений
  5. 5
    Проверьте на тестовых данных: запись, перезапись, срез последних, отмена проведения документа

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

Типичные ошибки
01
Непериодический регистр там, где нужна история — старые значения безвозвратно теряются при перезаписи
02
Подчинённый регистратору регистр без реальной потребности в документе — лишняя сложность разработки и поддержки
03
Периодичность «в пределах секунды» при изменениях раз в месяц — избыточный объём хранения
04
Получение актуального значения группировкой по максимальной дате вместо виртуальной таблицы СрезПоследних — медленнее и сложнее
05
Избыточное число измерений — замедляет запись и усложняет запросы

Особенности работы и ограничения

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

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

При обмене данными помните: независимые регистры переносятся как собственные записи, а подчинённые регистратору — вместе с документами. Если в план обмена включён регистр, но не включён его регистратор, в базе-приёмнике появятся записи с битыми ссылками либо движения не выгрузятся вовсе.

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

Проверка результата после настройки

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

Контрольные точки

Как проверить результат

Запись в независимый регистр
Норма

Запись появляется в списке, повторная запись по тому же ключу обновляет значение

Тревожный признак

Дубли записей с одинаковым ключом — значит, нарушена уникальность измерений

Срез последних
Норма

Запрос возвращает актуальное значение на заданную дату

Тревожный признак

Возвращается старое значение или пусто — проверьте периодичность и даты записей

Отмена проведения регистратора
Норма

Движения документа удаляются автоматически

Тревожный признак

Записи остаются — регистр не включён в движения документа или записи созданы вручную

Часто задаваемые вопросы

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

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

Можно ли изменить режим записи существующего регистра?

Технически свойство «Режим записи» можно переключить в конфигураторе, но при переходе к подчинению регистратору существующие записи без регистратора станут проблемой — их придётся удалять или переносить. Такое изменение лучше выполнять через создание нового регистра и перенос данных обработкой.

Какую периодичность выбрать для периодического регистра?

Ориентируйтесь на реальную частоту изменений: если значения меняются не чаще раза в день, достаточно периодичности «в пределах дня». Более точная периодичность увеличивает размер таблицы без практической выгоды.

Почему запрос к срезу последних работает медленно?

Чаще всего потому, что в параметрах виртуальной таблицы не задан отбор по измерениям — платформа строит срез по всему регистру. Передавайте условие отбора именно в параметры виртуальной таблицы, а не в секцию ГДЕ основного запроса.

Когда регистр сведений лучше заменить регистром накопления?

Когда нужны суммируемые показатели и обороты: количество проданного товара, суммы взаиморасчётов. Регистр сведений хранит отдельные значения без итогов; если требуется отчёт с оборотами за период — это задача регистра накопления.

Можно ли записывать в подчинённый регистр программно, без документа?

Можно через набор записей с указанием регистратора, но делать этого не следует: запись без реального документа нарушит логику учёта и создаст проблемы при обмене и аудите. Правильный путь — создать и провести документ-регистратор.

Итог

Что важно запомнить

Вид регистра сведений определяется двумя вопросами: нужен ли документ-регистратор и нужна ли история значений. Независимый непериодический — для актуальных соответствий, независимый периодический — для истории без документов, подчинённый регистратору — когда изменение оформляется документом. Ошибка выбора на старте дороже всего исправляется после накопления данных.