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

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

Регистр накопления в 1С: назначение и принципы работы

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

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

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

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

Какую задачу решает регистр накопления

Представьте склад, на который ежедневно поступают и со склада отгружаются товары. Чтобы узнать текущий остаток позиции, теоретически можно перебрать все документы поступления и реализации и сложить количества. На базе из сотен тысяч документов такой расчёт занял бы неприемлемое время. Регистр накопления решает эту проблему: каждый документ при проведении оставляет в нём записи-движения, а платформа автоматически поддерживает итоговые таблицы остатков и оборотов.

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

Вторая задача — контроль. Перед списанием товара программа проверяет остаток по регистру и не даёт продать то, чего нет на складе (если включён соответствующий контроль). Без регистра накопления такая оперативная проверка была бы невозможна.

Из чего состоит регистр: измерения, ресурсы, реквизиты

Структура регистра накопления задаётся в конфигураторе и состоит из трёх основных элементов. Измерения — это разрезы аналитики, в которых накапливаются данные: номенклатура, склад, контрагент, организация. Именно по измерениям строятся итоги, поэтому их набор определяет, на какие вопросы сможет ответить регистр.

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

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

Два вида регистров: остатки и обороты

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

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

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

Остатки или обороты

Регистр остатков

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

Оборотный регистр

Нужна только статистика за период: продажи, выручка, отгрузки. Легче и быстрее, но остаток на дату получить нельзя.

Как документы записывают движения

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

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

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

Как создать простой регистр остатков
  1. 1
    В конфигураторе добавьте объект «Регистр накопления», задайте имя, например «ОстаткиМатериалов».
  2. 2
    Выберите вид регистра — «Остатки».
  3. 3
    Добавьте измерения: «Номенклатура» (СправочникСсылка.Номенклатура) и «Склад» (СправочникСсылка.Склады).
  4. 4
    Добавьте ресурс «Количество» с типом Число с нужной точностью.
  5. 5
    В документах поступления и списания включите проведение по регистру и опишите движения в ОбработкаПроведения.
  6. 6
    Проверьте: проведите документ и откройте регистр — запись появилась; отмените проведение — запись исчезла.

Как получать остатки и обороты в запросах

Для чтения данных регистра платформа предоставляет виртуальные таблицы. У регистра остатков это Остатки (срез на дату), Обороты (суммы за период с группировкой) и ОстаткиИОбороты (начальный остаток, приход, расход, конечный остаток). У оборотного регистра доступна только таблица Обороты.

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

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

bsl
ВЫБРАТЬ
    Остатки.Номенклатура КАК Номенклатура,
    Остатки.Склад КАК Склад,
    Остатки.КоличествоОстаток КАК Остаток
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, Склад = &Склад) КАК Остатки

Отличия от регистра сведений и других объектов

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

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

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

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

Нужно знать остаток на дату и контролировать наличиеРегистр накопления с видом «Остатки»
Нужна только статистика движений за периодОборотный регистр накопления
Нужно хранить значение, действующее на момент времени (цена, курс)Периодический регистр сведений
Нужна просто классификация без учёта времениСправочник или непериодический регистр сведений

Типичные ошибки и их последствия

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

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

Типичные ошибки
01
Добавление аналитики в реквизиты вместо измерений — отчёт по этой аналитике станет невозможен или будет работать очень медленно.
02
Выбор оборотного регистра для складских остатков — контроль наличия и остаток на дату получить нельзя.
03
Запрос к физической таблице регистра вместо виртуальных таблиц — резкое падение производительности на больших базах.
04
Прямая правка или загрузка записей в регистр в обход документов — рассинхронизация с учётными данными и битые итоги.
05
Проведение документов задним числом без восстановления последовательности — неверная себестоимость и остатки на промежуточные даты.

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

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

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

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

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

Остаток из виртуальной таблицы против суммы движений
Норма

Значения совпадают

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

Расхождение — требуется пересчёт итогов

Отрицательные остатки по товарам
Норма

Отсутствуют или объяснимы резервами

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

Массовые минусы — нарушена последовательность проведения

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

Стабильна при росте базы

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

Деградирует — проверить итоги и индексы

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

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

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

Чем регистр накопления отличается от бухгалтерского регистра?

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

Почему отчёт показывает остаток, а товара фактически нет?

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

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

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

Что такое восстановление последовательности и когда оно нужно?

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

Сколько регистров накопления должно быть в конфигурации?

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

Итог

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

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