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