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

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

Для чего используются регистры сведений в 1С

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

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

Главная причина существования этого объекта — необходимость хранить данные, которые неудобно или невозможно разместить в реквизитах справочника. Если цена товара зависит от вида цены и даты, а в справочнике «Номенклатура» поле «Цена» одно, то хранение истории цен в реквизите невозможно. Регистр сведений решает эту задачу: каждая запись содержит значение измерения (товар, вид цены), период и ресурс (сама цена).

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

Как устроен регистр сведений: измерения, ресурсы, реквизиты

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

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

Виды регистров сведений и когда какой выбирать

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

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

Сравнение вариантов

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

Подходит для постоянных характеристик: штрихкоды, соответствия объектов при обмене. Истории нет, изменение перезаписывает значение.

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

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

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

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

Типовые сценарии применения

В типовых конфигурациях регистры сведений встречаются повсюду. Знание этих сценариев помогает и при разработке собственных решений, и при поиске данных в готовой системе.

Цены и курсы валют

Классический пример — регистр «Цены номенклатуры»: измерения «Номенклатура» и «Вид цены», ресурс «Цена», периодичность и подчинение документу-регистратору. Аналогично устроен регистр «Курсы валют»: измерение «Валюта», период, ресурс «Курс». Благодаря периодичности документы прошлых дат пересчитываются по курсу, актуальному на дату документа.

Штрихкоды и соответствия объектов

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

Кадровые и контактные данные

ФИО физических лиц, паспортные данные, контактная информация (адреса, телефоны, email) в типовых конфигурациях хранятся в регистрах сведений. Это позволяет вести историю: фамилия сотрудницы после замужества меняется, но документы прошлых периодов продолжают показывать прежнюю фамилию, актуальную на ту дату.

Настройки и служебные данные

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

Данные зависят от нескольких объектовЦена = товар + вид цены

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

Нужна история измененийКурс валюты на дату

Требуется периодический регистр

Данные задаются документомЦены из документа установки цен

Нужен режим подчинения регистратору

Значение одно и постоянноСтавка НДС товара

Достаточно реквизита справочника, регистр избыточен

Чем регистр сведений отличается от других объектов

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

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

КритерийРегистр сведенийСправочникРегистр накопления
Что хранитЗначения характеристикОбъекты учётаОстатки и обороты
Ключ записиИзмерения (+ период)Ссылка, кодРегистратор + измерения
История измененийДа (периодические)НетДа (по движениям)
Итоги и суммированиеНетНетДа

Как работать с регистром сведений на практике

В пользовательском режиме записи независимых регистров редактируются через форму списка: «Ещё → Перейти» из карточки объекта или через раздел настроек. Периодические регистры позволяют просматривать историю и задавать значение на конкретную дату. Подчинённые регистратору регистры напрямую не редактируются — нужно создать или изменить документ-регистратор.

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

bsl
Запрос = Новый Запрос("ВЫБРАТЬ Цены.Номенклатура, Цены.Цена ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ) КАК Цены"); Запрос.УстановитьПараметр("Дата", ТекущаяДатаСеанса());
Как создать и заполнить регистр сведений
  1. 1
    В конфигураторе добавьте объект «Регистр сведений», задайте имя и представление
  2. 2
    Определите измерения — разрезы хранения, и ресурсы — хранимые значения
  3. 3
    Выберите периодичность, если нужна история, и режим записи (независимый или подчинён регистратору)
  4. 4
    Обновите конфигурацию базы данных и откройте регистр в режиме предприятия
  5. 5
    Введите тестовые записи и проверьте уникальность ключа и работу среза последних

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

Самая распространённая ошибка — попытка хранить в регистре сведений данные, требующие итогов: остатки, суммы, количества. Регистр сведений не суммирует; для таких задач нужен регистр накопления. Обратная ошибка — размещение истории изменений в реквизитах справочника с ручным добавлением полей «Цена1», «Цена2», что быстро исчерпывает себя.

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

Типичные ошибки
01
Хранение остатков в регистре сведений — итоги придётся считать вручную, логика усложнится и замедлится
02
Редактирование подчинённого регистра напрямую — записи рассинхронизируются с документами-регистраторами
03
Отсутствие периодичности там, где нужна история — старые значения безвозвратно перезаписываются
04
Избыточные измерения — каждая запись требует заполнения всех измерений, ввод данных усложняется
05
Чтение без среза последних в цикле — обращения к базе в цикле резко снижают производительность

Производительность и ограничения

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

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

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

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

Записи отображаются в форме списка регистра
Норма

Все измерения заполнены, значения корректны

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

Дубли ключей или пустые измерения

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

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

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

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

Движения документа-регистратора
Норма

Проведение создаёт записи, отмена — удаляет

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

Записи остаются после отмены проведения

Частые вопросы

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

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

Чем срез последних отличается от обычного запроса к регистру?

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

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

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

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

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

Можно ли использовать регистр сведений для хранения настроек пользователей?

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

Итог

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

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