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

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

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

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

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

Главный критерий выбора — есть ли у данных собственная идентичность. Если объект существует сам по себе, на него ссылаются документы и у него есть код и наименование — это справочник. Если данные описывают свойство чего-то другого и не имеют самостоятельного смысла вне связки «измерение + период» — это регистр сведений.

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

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

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

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

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

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

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

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

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

Ключевые отличия в одной таблице

Сопоставление основных характеристик помогает быстро проверить правильность выбора:

КритерийСправочникРегистр сведений
Что хранитСамостоятельные сущностиЗначения в разрезе измерений
Уникальная ссылкаЕсть, на элемент можно ссылатьсяНет, у записи только ключ измерений
ИдентификацияКод + ссылкаКомбинация измерений (+ период)
ИерархияПоддерживаетсяНе поддерживается
Периодичность (история)Нет (кроме реквизитов-таблиц)Есть у периодических регистров
Использование в документахРеквизиты и табличные части ссылаются на элементыЗаполняется движениями или читается запросом
Типичные примерыНоменклатура, контрагенты, сотрудникиЦены, курсы валют, адреса, штрихкоды

Как выбрать правильный объект: практические критерии

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

Рассмотрим пример с адресами контрагентов. Адрес не существует сам по себе — он всегда привязан к контрагенту, и на него не нужно ссылаться из документов. Значит, правильное место хранения — регистр сведений с измерением «Контрагент» (или «Контрагент» + «Вид адреса»). Именно так реализована контактная информация в типовых конфигурациях.

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

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

Как выбрать объект

На данные должны ссылаться документы или другие объектыСоздавайте справочник
Нужна история значения по датам (цены, курсы, статусы)Создавайте периодический регистр сведений
Данные — свойство другой сущности без собственной идентичностиСоздавайте регистр сведений с измерением-владельцем
Нужны иерархия, группы или подчинённые элементыТолько справочник, регистры иерархию не поддерживают
Значения заполняются при проведении документовРегистр сведений, подчинённый регистратору

Типичные сценарии и ошибки выбора

Когда ошибочно делают справочник

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

Когда ошибочно делают регистр

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

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

Как проверить, что выбор сделан правильно

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

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

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

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

Получение актуального значения на дату
Норма

Один запрос к СрезПоследних регистра сведений

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

Сложный запрос с группировкой по табличной части справочника

Уникальность данных
Норма

Платформа блокирует дубли по ключу измерений

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

Дубли возможны, контроль только кодом в обработчиках

Ссылки из документов
Норма

Реквизит имеет тип СправочникСсылка

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

Строковые копии наименований вместо ссылок

Целостность при удалении
Норма

Платформа не даёт удалить элемент, на который есть ссылки

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

Записи удаляются, ссылки в документах битые

Ограничения и риски при изменении структуры

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

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

Практические рекомендации

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

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

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

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

Справочник

Подходит для сущностей, на которые ссылаются документы; поддерживает иерархию и подчинение; не хранит историю изменений

Непериодический регистр сведений

Подходит для фиксированных значений в разрезе измерений (штрихкоды, соответствия объектов); истории нет

Периодический регистр сведений

Подходит для значений, меняющихся во времени (цены, курсы); штатные срезы последних и первых

Табличная часть справочника

Допустима только для небольших списков без анализа по датам; для истории значений не подходит

Итог

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

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

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

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

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

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

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

Что быстрее работает на больших объёмах — справочник или регистр?

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

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

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

Когда регистр сведений нужно подчинять регистратору?

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

Почему в типовых конфигурациях контактная информация — регистр, а не реквизиты справочника?

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