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