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

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

Регистр сведений и регистр накопления в 1С: в чём разница и как их использовать

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

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

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

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

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

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

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

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

Виды регистров сведений: периодичность и подчинение

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

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

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

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

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

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

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

Остатки и обороты: два вида регистров накопления

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

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

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

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

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

Значения в разрезе измерений: цены, курсы, настройки. Нет прихода/расхода и остатков. Подходит для справочных и исторических значений.

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

Приход и расход ресурса, текущий остаток на любую дату. Подходит для товаров, денег, долгов. Поддерживает контроль отрицательных остатков.

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

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

Как выбрать тип регистра под задачу

Задайте себе три вопроса. Первый: значение изменяется документами как увеличение/уменьшение, или просто устанавливается новое? Если устанавливается — это регистр сведений. Второй: нужен ли остаток на дату? Если да — регистр накопления вида «Остатки». Третий: нужна ли история значений? Для регистра сведений это периодичность, для регистра накопления история есть всегда через движения.

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

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

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

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

Практика: проведение документа по регистрам

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

Пример кода движения по регистру остатков в обработке проведения:

Движение = Движения.ТоварыНаСкладах.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Приход;

Движение.Период = Дата;

Движение.Номенклатура = СтрокаТовара.Номенклатура;

Движение.Склад = Склад;

Движение.Количество = СтрокаТовара.Количество;

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

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

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

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

Третья ошибка — обращение к виртуальным таблицам остатков без параметров отбора. Запрос «все остатки по всем товарам» в большой базе выполняется долго. Всегда передавайте в виртуальную таблицу условия по измерениям и период.

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

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

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

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

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

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

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

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

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

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

Остаток на дату
Норма

Совпадает с суммой приходов минус расходы по первичным документам

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

Остаток отличается от расчёта по документам

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

На каждую дату возвращается актуальное на тот момент значение

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

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

Скорость отчёта
Норма

Отчёт по остаткам с отборами строится за секунды

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

Отчёт без отборов выполняется минутами

Итог

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

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

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

Можно ли изменить вид регистра накопления с «Остатки» на «Обороты» в работающей базе?

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

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

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

Зачем нужен режим «Подчинение регистратору» у регистра сведений?

Он связывает жизненный цикл записей с документом: записи создаются при проведении и автоматически удаляются при отмене. Это гарантирует, что данные в регистре всегда соответствуют первичным документам, и исключает «осиротевшие» записи.

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

Используйте виртуальную таблицу Остатки регистра накопления, передав дату в параметр: «ТоварыНаСкладах.Остатки(&Дата, Склад = &Склад)». Дата должна быть задана с точностью до секунды; для остатка «на конец дня» используйте границу, включающую документы этой даты.

Почему отчёт по остаткам работает медленно на большой базе?

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

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

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