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