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