Справочники и Данные · 11 мин
Чем отличается справочник от регистра в 1С
Разбираем отличия справочника от регистра сведений и регистра накопления в 1С: назначение, структура, хранение данных, примеры и типичные ошибки выбора.
Справочник и регистр — два фундаментальных типа объектов метаданных в 1С, и путаница между ними — одна из самых частых причин ошибок при проектировании конфигурации и доработках. Оба объекта хранят данные, но делают это принципиально по-разному: справочник хранит самостоятельные сущности (номенклатуру, контрагентов, сотрудников), а регистр — сведения или движения, привязанные к измерениям, периодам или документам.
Разница видна уже на уровне логики. Справочник отвечает на вопрос «что это за объект и какие у него постоянные свойства». Регистр отвечает на вопросы «какое значение действовало на дату», «сколько товара осталось на складе», «какие суммы накоплены по контрагенту». Если попытаться хранить остатки в справочнике или описание товара в регистре, система будет работать медленно, а данные — расходиться.
Ниже разберём назначение каждого объекта, виды регистров, критерии выбора, примеры из типовых конфигураций и типичные ошибки. Материал полезен и пользователям, которые хотят понимать, где искать данные, и начинающим разработчикам, проектирующим структуру учёта.
Что такое справочник и для чего он нужен
Справочник — это объект метаданных для хранения условно-постоянной нормативно-справочной информации. Каждый элемент справочника — самостоятельная сущность с уникальным кодом и набором реквизитов. Классические примеры: «Номенклатура», «Контрагенты», «Сотрудники», «Склады», «Договоры», «Валюты».
Ключевые свойства справочников:
- элементы существуют независимо от документов — товар в справочнике есть, даже если по нему ни разу не было движений;
- поддерживают иерархию (группы и элементы) и подчинение (например, «Договоры» подчинены «Контрагентам»);
- имеют реквизиты и табличные части для описания свойств объекта;
- на элементы ссылаются документы и регистры — это основа целостности данных.
Важно понимать: справочник не хранит историю изменений реквизитов. Если вы поменяли ставку НДС или наименование в карточке товара, старое значение потеряно — документы прошлых периодов при перепроведении возьмут уже новое значение. Для данных, зависящих от времени, нужен регистр.
Что такое регистр и какие виды регистров существуют
Регистр — объект для хранения данных в разрезе заданных измерений. В отличие от справочника, запись регистра почти никогда не существует сама по себе: она привязана к комбинации измерений, периоду или документу-регистратору. В 1С есть четыре вида регистров, но чаще всего сравнение со справочником касается двух.
Регистр сведений
Хранит значения в разрезе измерений, опционально — с учётом периода. Примеры: «Цены номенклатуры» (измерения: номенклатура, вид цены; периодичность — в пределах секунды или дня), «Курсы валют», «Штрихкоды», «ФИО физических лиц». Периодический регистр сведений позволяет получить значение на любую дату через виртуальные таблицы «СрезПоследних» и «СрезПервых».
Регистр накопления
Хранит движения и итоги: остатки (вид «Остатки») или обороты (вид «Обороты»). Примеры: «Товары на складах», «Взаиморасчёты с контрагентами», «Продажи». Записи создаются только документами-регистраторами при проведении; удалить или отредактировать их вручную нельзя — только через документ.
Также существуют регистры бухгалтерии (проводки по плану счетов) и регистры расчёта (начисления по плану видов расчёта) — они используются в соответствующих подсистемах и по логике ближе к регистрам накопления: записи порождаются документами.
Ключевые отличия справочника от регистра
| Критерий | Справочник | Регистр |
|---|---|---|
| Что хранит | Самостоятельные объекты и их свойства | Значения и движения в разрезе измерений |
| Зависимость от документов | Не зависит, существует сам по себе | Сведения — как правило, независимы; накопления — только через регистратор |
| Учёт времени | Нет истории, хранится текущее значение | Периодичность (сведения) или движения по датам (накопления) |
| Идентификация записи | Уникальный код и внутренняя ссылка | Комбинация измерений (+ период, + регистратор) |
| Иерархия и подчинение | Поддерживаются | Отсутствуют |
| Типичные примеры | Номенклатура, контрагенты, склады | Цены, курсы валют, остатки, взаиморасчёты |
Простая мысленная проверка: если данные можно потерять без потери смысла учёта и восстановить их по документам — это, скорее всего, регистр. Если объект должен существовать до и независимо от любых операций — это справочник.
Как выбрать: справочник или регистр
При проектировании доработки задайте себе три вопроса. Первый: данные описывают объект или состояние объекта? Описание (цвет, артикул, ИНН) — в справочник; состояние (цена на дату, остаток, задолженность) — в регистр. Второй: нужна ли история изменений? Если значение должно быть известно «на дату», справочник не подходит в принципе. Третий: кто создаёт данные — пользователь вручную или документы при проведении? Ручной ввод разрозненных значений в разрезе измерений — регистр сведений; движения по документам — регистр накопления.
Как выбрать объект метаданных
Типовая ошибка проектирования — добавить в справочник «Номенклатура» реквизит «Цена» или «Остаток». Цена зависит от вида цены и даты, остаток — от склада и документов. Хранение таких данных в карточке товара приводит к рассинхронизации: реквизит не успевает за движениями, а отчёты перестают сходиться.
Практические примеры из типовых конфигураций
Рассмотрим связку «Номенклатура» и «Цены номенклатуры». Карточка товара (справочник) хранит наименование, артикул, единицу измерения, вид номенклатуры. Цена в карточке не хранится — она лежит в периодическом регистре сведений и устанавливается документом «Установка цен номенклатуры». Благодаря этому можно посмотреть цену на любую прошедшую дату и держать несколько видов цен одновременно (закупочная, розничная, оптовая).
Второй пример — остатки. Справочник «Склады» хранит только список складов и их свойства (адрес, ответственный). Фактическое количество товара хранится в регистре накопления «Товары на складах» в разрезе измерений «Номенклатура + Склад». Отчёт «Остатки товаров» строится по виртуальной таблице остатков регистра, а не по справочникам.
Третий пример — контрагенты и взаиморасчёты. Справочник «Контрагенты» хранит ИНН, адреса, банковские реквизиты. Задолженность покупателя — это обороты и остатки регистра накопления «Взаиморасчёты», который заполняется документами реализации и оплаты. Добавлять «долг» реквизитом в карточку контрагента — прямой путь к некорректным данным.
Быстрый способ понять, где лежат данные в типовой конфигурации: откройте отчёт и посмотрите его запрос через консоль запросов или схему компоновки. Если данные берутся из таблиц вида «РегистрСведений» или «РегистрНакопления» — это регистр; «Справочник» — соответственно, справочник.
Как проверить, где хранятся данные, и не ошибиться при доработке
Если вы пользователь и хотите понять, откуда отчёт берёт цифру, начните с карточки объекта: реквизиты, видимые в форме элемента, — это справочник. Данные, которые меняются документами и видны в отчётах за период, — регистры. В режиме «Ещё → Изменить форму» или через вывод технической информации о полях можно увидеть путь к данным.
Разработчику перед доработкой стоит выполнить такую последовательность:
- 1Определите природу данных: объект, значение на дату или движение по документу
- 2Проверьте, нет ли готового типового регистра или справочника для этой задачи
- 3Выберите вид объекта и задайте измерения по принципу «в разрезе чего нужны данные»
- 4Сделайте резервную копию базы и протестируйте на копии
- 5Проверьте отчётом, что данные пишутся и читаются в нужных разрезах
Как проверить результат
Срез последних на нужную дату возвращает корректное значение
Значение не находится или перезаписывает прошлые периоды
Остаток по отчёту совпадает с суммой движений документов
Есть записи без регистратора или остаток не сходится
Элемент существует без документов, реквизиты заполнены
В реквизитах справочника хранятся остатки или цены
Типичные ошибки и ограничения
Ещё одно ограничение: производительность. Запрос к справочнику — это чтение одной таблицы, а запрос к регистру накопления часто идёт через виртуальные таблицы остатков и оборотов. Неправильно спроектированные измерения (например, хранение уникального номера накладной в измерении) приводят к тому, что итоги становятся бесполезными, а проведение документов замедляется.
Помните и о правах доступа: в типовых конфигурациях права на справочники и регистры настраиваются отдельно. Пользователь может видеть карточку товара, но не видеть регистр себестоимости — это нормальная практика разграничения доступа.
Что важно запомнить
Справочник — самостоятельные объекты с постоянными свойствами, без истории изменений. Регистр — данные в разрезе измерений: сведения на дату или движения и остатки по документам. Выбор определяется природой данных: описание объекта — в справочник, состояние и движения — в регистр.
Частые вопросы
Можно ли хранить цену товара в справочнике «Номенклатура»?
Технически можно добавить такой реквизит, но это плохое решение: у товара обычно несколько видов цен, цена меняется во времени, и история изменений теряется. Правильный вариант — периодический регистр сведений «Цены номенклатуры» с измерениями «Номенклатура» и «Вид цены».
Чем регистр сведений отличается от регистра накопления?
Регистр сведений хранит значения в разрезе измерений (цена, курс, статус) и может заполняться вручную или документом. Регистр накопления хранит движения и итоги (остатки, обороты) и заполняется только при проведении документов-регистраторов.
Можно ли удалить запись из регистра накопления вручную?
Штатными средствами — нет: записи создаёт и удаляет только документ-регистратор при проведении или отмене проведения. Прямая правка обработками разрывает связь данных с документами и считается аварийной операцией, допустимой только на копии базы.
Как узнать, в каком регистре или справочнике хранится нужная информация?
Откройте форму объекта и посмотрите путь к данным поля, либо изучите запрос отчёта через консоль запросов. Имена таблиц вида «Справочник.Номенклатура» и «РегистрСведений.ЦеныНоменклатуры» прямо указывают тип объекта.
Почему в справочнике нельзя посмотреть значение реквизита на прошлую дату?
Справочник хранит только текущее состояние реквизитов и не ведёт историю. Для данных, зависящих от времени, используйте периодический регистр сведений — он позволяет получать значение на любую дату через срез последних.
Что выбрать для хранения статуса заказа: реквизит, справочник или регистр?
Если статус один и история не нужна — достаточно реквизита документа. Если нужны история смены статусов, даты и ответственные — используйте периодический регистр сведений с измерением «Заказ». Отдельный справочник статусов при этом хранит только перечень возможных значений.