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

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

Регистры накопления в 1С: какие бывают и как их выбирать

Какие бывают регистры накопления в 1С: остатки, обороты, виды движений приход и расход. Разбор отличий, примеры использования, типичные ошибки и FAQ.

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

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

Ниже разобраны оба вида регистров, виды движений «Приход» и «Расход», структура регистра (измерения, ресурсы, реквизиты), критерии выбора и типичные ошибки разработчиков и внедренцев.

Что такое регистр накопления и как он устроен

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

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

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

Вид «Остатки»: когда показатель должен быть известен на дату

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

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

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

Вид «Обороты»: когда важна сумма за период

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

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

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

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

Вид «Остатки»

Подходит для показателей с текущим значением на дату: товары, долги, деньги. Требует вида движения Приход/Расход. Позволяет контролировать отрицательные остатки.

Вид «Обороты»

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

Виды движений «Приход» и «Расход»

В регистрах остатков каждая запись движения имеет вид «Приход» или «Расход». Это не отдельные виды регистров, а свойство конкретной строки. Приходные документы (поступление товаров, оплата от покупателя) формируют движения с видом «Приход», расходные (реализация, списание, оплата поставщику) — с видом «Расход».

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

При программном формировании движений вид задаётся явно. В модуле документа это выглядит как установка свойства ВидДвижения у строки набора записей.

bsl
Движение = Движения.ТоварыНаСкладах.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = СтрокаТовары.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = СтрокаТовары.Количество;

Как выбрать вид регистра для своей задачи

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

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

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

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

Как выбрать вид регистра

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

Виртуальные таблицы и получение данных

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

Для регистра оборотов доступна только таблица «Обороты». При обращении к виртуальным таблицам важно передавать параметры периода и отборы именно в параметры виртуальной таблицы, а не в условие ГДЕ основного запроса: иначе платформа сначала выберет все записи, а потом отфильтрует их, что резко замедляет выполнение.

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

Типичные ошибки при работе с регистрами накопления

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

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

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

Типичные ошибки
01
Неверный вид движения Приход/Расход — остатки искажаются, ошибка вскрывается только при сверке
02
Вид «Обороты» для показателя, по которому нужен остаток на дату — приходится переделывать регистр и перепроводить документы
03
Отборы в секции ГДЕ вместо параметров виртуальной таблицы — запросы к регистру работают в разы медленнее
04
Избыточные измерения — раздувают таблицу итогов и замедляют проведение документов
05
Сторнирование сменой вида движения вместо отрицательного значения ресурса — искажает обороты в отчётах

Проверка корректности движений и итогов

После создания документа с движениями по регистру накопления проверьте результат в три шага. Сначала откройте движения проведённого документа (кнопка «Движения» в форме документа) и убедитесь, что вид движения, измерения и ресурсы заполнены правильно. Затем постройте универсальный отчёт или отчёт по регистру и сверьте остаток с ожидаемым значением. Наконец проверьте граничные случаи: отмену проведения, перепроведение задним числом, сторнирование.

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

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

Как проверить результат

Движения проведённого документа
Норма

Вид движения, измерения и ресурсы соответствуют логике операции

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

Отгрузка записана приходом, ресурсы пустые или с неверным знаком

Остаток в отчёте по регистру
Норма

Совпадает с ожидаемым значением и первичными документами

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

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

Отмена проведения документа
Норма

Движения полностью удалены, итоги пересчитаны

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

В регистре остались «висячие» записи после отмены проведения

Скорость отчёта по регистру
Норма

Отчёт с отборами выполняется быстро

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

Отчёт «зависает» — вероятно, отборы заданы в ГДЕ, а не в параметрах виртуальной таблицы

Часто задаваемые вопросы

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

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

Чем регистр накопления отличается от регистра сведений?

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

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

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

Как исправить отрицательные остатки в регистре?

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

Нужен ли регистр оборотов, если есть регистр остатков?

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

Итог

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

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