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