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

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

Что такое регистр накопления в программе 1С

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

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

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

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

Из чего состоит регистр накопления

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

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

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

Платформа 1С поддерживает два вида регистров накопления, и выбор вида определяется тем, какой вопрос должен отвечать регистр.

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

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

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

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

Нужен, когда важно знать состояние на дату: сколько товара на складе, сколько должен клиент. Поддерживает контроль отрицательных остатков.

Регистр оборотов

Подходит для статистики за период: сумма продаж за месяц, количество отгрузок за квартал. Легче по объёму, но не даёт остатков.

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

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

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

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

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

Как посмотреть данные регистра и построить отчёт

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

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

Как проверить движения документа
  1. 1
    Откройте документ и проведите его, если он не проведён.
  2. 2
    Нажмите «Ещё» → «Движения документа» (в ряде конфигураций — кнопка «Дт/Кт» или отдельная закладка).
  3. 3
    Найдите в списке нужный регистр накопления и откройте его записи.
  4. 4
    Сверьте измерения и количество с табличной частью документа.
  5. 5
    При расхождении распроведите и перепроведите документ, затем проверьте снова.

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

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

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

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

Как проверить корректность учёта

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

Совпадают при одинаковых отборах и периоде

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

Расхождение — есть непроведённые документы или ручные операции

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

Отсутствуют на конец периода

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

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

Скорость формирования отчёта
Норма

Отчёт строится за секунды

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

Долгое формирование — возможно, не рассчитаны итоги или запрос идёт по таблице записей

Типичные ошибки при работе с регистрами
01
Получение остатков суммированием таблицы записей вместо виртуальной таблицы «Остатки» — запрос работает в разы медленнее.
02
Хранение в ресурсах нечисловых данных — итоги по ним посчитать нельзя, такие данные должны быть реквизитами.
03
Избыточное число измерений — раздувает таблицу итогов и замедляет проведение документов.
04
Использование регистра оборотов там, где нужны остатки на дату — приходится переделывать структуру и перепроводить базу.
05
Ручная правка записей регистра без корректирующего документа — при перепроведении изменения теряются.

Расчёт итогов и производительность

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

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

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

В 1С существуют четыре типа регистров, и их часто путают. Регистр накопления хранит числа, которые складываются и вычитаются. Регистр сведений хранит значения в разрезе измерений (курсы валют, цены, штрихкоды) — там нет прихода и расхода. Регистр бухгалтерии работает с планом счетов и проводками по дебету и кредиту. Регистр расчёта применяется для начислений зарплаты с периодами действия и вытеснением.

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

Итог

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

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

Частые вопросы о регистрах накопления

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

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

Почему отчёт показывает отрицательный остаток товара?

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

Что делать, если регистр стал работать медленно?

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

Можно ли изменить состав измерений существующего регистра?

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

Чем отличается регистратор от измерения?

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

Нужен ли отдельный регистр для каждого показателя?

Нет. Если показатели относятся к одной предметной области и совпадают по набору измерений (например, количество и сумма товара на складе), их размещают как несколько ресурсов одного регистра. Отдельный регистр оправдан, когда различаются измерения или вид регистра.