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

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

Для чего нужен регистр сведений в 1С

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

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

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

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

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

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

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

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

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

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

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

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

Вид регистраТиповой примерКогда выбирать
Непериодический, независимыйШтрихкоды номенклатурыИстория не нужна, запись вручную или из кода
Периодический, независимыйКурсы валютНужна история, данные загружаются автоматически
Периодический, подчинён регистраторуЦены номенклатуры документом «Установка цен»Изменения оформляются документами, нужен аудит
Непериодический, подчинён регистраторуСтатусы документовЗначение одно, но меняется только документом
Маршрут решения

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

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

Типовые сценарии использования

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

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

Аналогично устроены курсы валют: измерение «Валюта», ресурсы «Курс» и «Кратность». Здесь регистр обычно независимый — курсы загружаются регламентным заданием из внешнего источника, документ не нужен.

Соответствия и сопоставления

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

Настройки и параметры учёта

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

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

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

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

Сравнение объектов

Справочник

Сущности с карточками, кодами, иерархией. Ограничение: нет встроенной истории изменения реквизитов во времени.

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

Значения в разрезе измерений с опциональной историей. Ограничение: нет остатков и оборотов.

Регистр накопления

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

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

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

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

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

bsl
Запрос = Новый Запрос("ВЫБРАТЬ Цена ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, Номенклатура = &Номенклатура)"); Запрос.УстановитьПараметр("Дата", ТекущаяДатаСеанса()); Запрос.УстановитьПараметр("Номенклатура", Товар); Выборка = Запрос.Выполнить().Выбрать();

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

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

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

Типичные ошибки при работе с регистрами сведений

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

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

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

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

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

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

Возвращает ожидаемое значение за доли секунды

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

Пустой результат при наличии записей или долгое выполнение

Уникальность ключей
Норма

Одна запись на комбинацию измерений в периоде

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

Ошибки записи о нарушении уникальности при обмене

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

Отмена проведения удаляет записи регистра

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

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

Права пользователей
Норма

Документы работают под типовой ролью

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

Ошибки доступа у рядовых пользователей

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

Итог

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

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

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

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

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

Что быстрее: срез последних или запрос к таблице регистра?

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

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

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

Как хранить несколько значений для одного ключа, например несколько телефонов контрагента?

Добавьте измерение-разделитель, например «ВидКонтактнойИнформации»: тогда комбинация «контрагент + вид» остаётся уникальной, а значений может быть несколько. Альтернатива — табличная часть справочника, если история изменений не нужна и список значений невелик.

Чем периодичность «в пределах секунды» отличается от «в пределах дня»?

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

Почему отчёт не видит данные регистра сведений?

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