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

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

Периодический и независимый регистр сведений в 1С: в чём разница и как выбрать

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

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

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

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

Что такое регистр сведений и как он устроен

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

Ключевое отличие от справочника: совокупность измерений (плюс период, если регистр периодический) образует уникальный ключ записи. Нельзя создать две записи с одинаковым набором измерений на одну дату — платформа выдаст ошибку нарушения уникальности. Это делает регистр сведений естественным хранилищем для данных вида «для объекта X на дату Y действует значение Z».

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

Периодический регистр сведений: хранение истории изменений

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

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

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

Важно понимать семантику: запись периодического регистра означает «значение действует начиная с указанной даты и до следующего изменения», а не «только в этот день». Если курс установлен записью от 10 января и следующая запись от 20 января, то срез последних на 15 января вернёт значение от 10 января.

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

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

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

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

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

Независимый

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

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

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

Как сочетаются периодичность и независимость

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

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

Критерий выбора режима записи — вопрос «должно ли значение иметь документальное основание и отменяться вместе с документом?». Для данных, приходящих извне (курсы ЦБ, справочники из других систем), независимый режим естественен. Для данных, порождаемых внутренними операциями компании, чаще нужен регистратор.

Маршрут решения

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

Нужно знать значение на произвольную прошедшую датуУстановите периодичность (обычно «в пределах дня»)
Значение устанавливается хозяйственным документом и должно отменяться вместе с нимВыберите режим «Подчинение регистратору»
Данные загружаются извне или правятся вручную без документовОставьте режим «Независимый»
Хранится только актуальное состояние без историиДостаточно непериодического регистра

Как создать и настроить регистр в конфигураторе

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

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

Порядок создания периодического независимого регистра
  1. 1
    В конфигураторе откройте ветку «Регистры сведений» и добавьте новый объект
  2. 2
    Задайте имя, периодичность «В пределах дня» и режим записи «Независимый»
  3. 3
    Добавьте измерения (например, «Валюта») и ресурсы (например, «Курс»)
  4. 4
    Создайте формы списка и записи, обновите конфигурацию базы данных
  5. 5
    Добавьте тестовые записи за разные даты и проверьте запросом срез последних на промежуточную дату

Чтение и запись данных программно

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

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

Типичные ошибки и ограничения

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

Вторая группа ошибок связана с ресурсами и реквизитами. Реквизиты не попадают в срез последних как значения в полном смысле и не участвуют в ключе — поле, по которому нужно получать значения и строить отборы, должно быть ресурсом или измерением. Также распространено создание независимого регистра для данных, которые бизнес-процесс требует устанавливать документом: позже приходится добавлять регистратора и переносить записи.

Типичные ошибки
01
Дублирование измерения данными, которые должны быть ресурсом: на каждое значение создаётся отдельная аналитика, срез последних становится бессмысленным
02
Запись через менеджер записи в цикле при массовой загрузке — в разы медленнее набора записей
03
Выбор периодичности «в пределах дня» для данных, меняющихся несколько раз в день: вторая запись за день вызывает ошибку уникальности
04
Использование независимого режима для цен, которые по учётной политике должны устанавливаться документом: теряется контроль и история оснований

Как проверить корректность настройки

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

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

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

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

Срез последних на промежуточную дату
Норма

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

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

Пустой результат или значение будущей даты

Добавление дублирующей записи на тот же период
Норма

Ошибка нарушения уникальности ключа

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

Запись сохраняется — значит, ключ сформирован неверно

Распроведение документа-регистратора
Норма

Движения по регистру удаляются

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

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

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

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

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

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

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

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

Запросом к виртуальной таблице СрезПоследних с параметром-периодом. Платформа сама найдёт для каждой комбинации измерений запись с максимальной датой, не превышающей указанную. Вручную искать максимальный период по физической таблице не требуется.

Что произойдёт с данными при смене непериодического регистра на периодический?

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

Когда нужен регистратор вместо независимого режима?

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

Почему запись набора записей стёрла часть данных регистра?

Набор записей при записи замещает все строки, попадающие под установленный отбор. Если отбор слишком широкий или не установлен вовсе, будут удалены лишние записи. Всегда проверяйте отборы перед вызовом метода Записать() и выполняйте операцию в транзакции.

Итог

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

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