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

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

Как создать регистр накопления в 1С

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

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

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

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

Что нужно решить до создания регистра

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

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

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

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

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

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

Сравнение видов регистров

Остатки

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

Обороты

Когда важна сумма за период: продажи, начисления, себестоимость. Ограничение: нельзя получить остаток на дату, только обороты за интервал.

Пошаговое создание регистра в конфигураторе

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

Порядок действий
  1. 1
    Задайте имя регистра латиницей без пробелов, например ТоварыНаСкладах, и синоним для интерфейса
  2. 2
    На закладке «Основные» выберите вид регистра: Остатки или Обороты
  3. 3
    На закладке «Данные» добавьте измерения (Номенклатура, Склад) с типами-ссылками на справочники
  4. 4
    Добавьте ресурсы (Количество, Сумма) с типом Число и разумной точностью
  5. 5
    На закладке «Регистраторы» отметьте документы, которые будут формировать движения
  6. 6
    Обновите конфигурацию базы данных (F7) и выполните реструктуризацию

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

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

Связь с документами и программирование движений

Движения по регистру создаются в обработчике ОбработкаПроведения модуля объекта документа. Платформа предлагает конструктор движений (кнопка «Конструктор движений» в модуле документа), который генерирует типовой код по табличной части — это хорошая отправная точка для простых случаев.

Для регистра остатков каждая строка движения должна иметь вид Приход или Расход. Пример кода проведения приходной накладной:

Для Каждого ТекСтрокаТовары Из Товары Цикл

Движение = Движения.ТоварыНаСкладах.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Приход;

Движение.Период = Дата;

Движение.Номенклатура = ТекСтрокаТовары.Номенклатура;

Движение.Склад = Склад;

Движение.Количество = ТекСтрокаТовары.Количество;

КонецЦикла;

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

bsl
Движения.ТоварыНаСкладах.Записывать = Истина;

Строка Движения.ТоварыНаСкладах.Записывать = Истина; обязательна, если движения формируются вручную без конструктора: без неё набор записей не будет записан при проведении.

Проверка результата после настройки

После обновления конфигурации создайте тестовый документ, заполните его и проведите. Затем откройте регистр: в режиме 1С:Предприятие через «Все функции → Регистры накопления» или постройте отчёт по регистру в консоли отчётов.

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

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

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

При проведении появляются записи с верными измерениями и суммами; при отмене проведения записи исчезают

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

Записей нет, дублируются или остаются после распроведения

Остатки на дату
Норма

Остаток по отчёту совпадает с ожидаемым количеством после серии приходов и расходов

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

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

Скорость проведения
Норма

Документ проводится без заметной задержки на рабочем объёме данных

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

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

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

Типичные ошибки и ограничения

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

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

Альтернативы и смежные решения

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

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

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

Нужно знать текущий остаток (товар, деньги, долг)Создавайте регистр накопления вида «Остатки»
Нужна сумма показателя за период без понятия остаткаСоздавайте регистр накопления вида «Обороты»
Хранится не число, а значение на дату (цена, курс, статус)Используйте периодический регистр сведений
Нужны и остатки, и детальные обороты по одной аналитикеСделайте два регистра: остатков и оборотов, с движениями из одних документов
В типовых конфигурациях регистры часто дублируют друг друга: например, отдельные регистры для остатков и для оборотов по одной номенклатуре. Это нормальная практика — не пытайтесь «сэкономить» объекты, объединяя разнородные показатели в один регистр с множеством ресурсов.
ПЗ
Практическое замечание

FAQ

Можно ли изменить вид регистра с «Остатки» на «Обороты» в рабочей базе?

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

Почему документ проводится, но записей в регистре нет?

Чаще всего не выполнена строка «Движения.ИмяРегистра.Записывать = Истина» либо регистр не отмечен в списке движений документа на закладке «Движения». Также проверьте, что код формирования движений реально выполняется — например, цикл по табличной части не запускается, если она пуста.

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

В режиме 1С:Предприятие откройте документ и используйте кнопку перехода к движениям (обычно «Перейти → Движения документа» или аналогичная команда в меню «Ещё»). В конфигураторе движения видны через отладчик при проведении.

Сколько измерений допустимо в одном регистре?

Жёсткого практического лимита, о котором стоит беспокоиться, нет, но каждое измерение входит в индексы и таблицу итогов. Ориентир — 3–6 измерений, реально используемых в отчётах и контроле. Аналитику «на всякий случай» лучше выносить в реквизиты регистра.

Нужно ли перепроводить документы после добавления нового регистра в конфигурацию?

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

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

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

Итог

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

Создание регистра накопления сводится к пяти решениям: вид (Остатки или Обороты), состав измерений и ресурсов, документы-регистраторы, код формирования движений и проверка итогов. Ошибки в выборе вида и избыточные измерения исправляются дороже всего, поэтому проектируйте регистр до наполнения данными и тестируйте на копии базы.