Регистры накопления в 1С:Предприятие — это ключевой инструмент для учета количественных и суммовых данных, который позволяет фиксировать изменения показателей во времени. Без них невозможно корректно вести учет товарных остатков, денежных средств или расчетов с контрагентами. Однако не все пользователи и даже разработчики до конца понимают, какие именно виды регистров накопления существуют в платформе, чем они отличаются и когда какой тип применять.
В этой статье мы разберем все актуальные типы регистров накопления в 1С 8.3 (включая последние обновления платформы), их структуру, особенности хранения данных и типичные сценарии использования. Особое внимание уделим разнице между регистрами остатков и оборотов — это критическое различие, которое часто становится источником ошибок при проектировании конфигураций. Материал будет полезен как начинающим программистам 1С, так и опытным специалистам, которые хотят систематизировать знания.
1. Что такое регистры накопления и зачем они нужны
Регистры накопления в 1С — это объекты конфигурации, предназначенные для хранения данных, которые изменяются со временем под воздействием документов или других операций. В отличие от справочников (где данные статичны), регистры фиксируют динамику: приход, расход, начисление, списание и т.д.
Основные задачи регистров накопления:
- 📊 Учет остатков — например, количество товара на складе или денежные средства на расчетном счете.
- 🔄 Фиксация оборотов — движение товаров между складами, переводы между счетами.
- 📈 Аналитика — расчет себестоимости, прибыли, задолженности по периодам.
- 🔗 Интеграция данных — связь между документами и отчетами (например, оборотно-сальдовая ведомость).
Важно понимать, что регистры накопления работают в паре с документами — именно документы формируют движения по регистрам. Например, при проведении документа "Поступление товаров" в регистре остатков увеличивается количество товара на складе, а в регистре оборотов фиксируется приходная операция.
Если в отчете не отображаются актуальные данные, проверьте, проведен ли документ, который должен был сформировать движения в регистре. Непровedenные документы не влияют на остатки!
2. Основные виды регистров накопления в 1С
В 1С:Предприятие 8.3 существует два фундаментальных типа регистров накопления, которые принципиально отличаются по логике работы и хранения данных:
- Регистры остатков — хранят текущее состояние (например, остаток товара на складе на конкретную дату).
- Регистры оборотов — хранят информацию о движениях за период (например, сумму продаж по контрагенту за месяц).
Разберем каждый тип подробнее.
2.1. Регистры остатков
Это самый распространенный тип регистров, который используется для учета текущего состояния объектов. Особенности:
- 📅 Хранят данные на конкретную дату (например, остаток на 10.05.2026).
- 🔄 Поддерживают операции
Приход,РасходиПриходРасход. - 📊 Позволяют получать остатки на любую дату в прошлом (история изменений сохраняется).
- 🔒 Имеют механизм корректировки остатков (документ
"Корректировка записей регистров").
Типичные примеры использования:
- 📦 Учет товарных остатков на складах.
- 💰 Остатки денежных средств на расчетных счетах.
- 👥 Задолженность покупателей и поставщиков (дебиторская/кредиторская).
- 🏭 Остатки сырья и материалов в производстве.
Пример структуры регистра остатков для товара
Регистр"ТоварыНаСкладах" содержит измерения: Склад, Номенклатура, Характеристика (если нужна детализация по цвету/размеру). Ресурсы: Количество, Сумма. Движения формируются документами "Поступление", "Реализация", "Инвентаризация".
2.2. Регистры оборотов
Эти регистры фиксируют движения за период, но не хранят текущие остатки. Их ключевая особенность — возможность анализировать данные в разрезе временных интервалов (день, месяц, квартал). Особенности:
- 📅 Данные привязаны к периоду (например, обороты за апрель 2026).
- 🔄 Поддерживают операции
ПриходиРасход(но неПриходРасход!). - 📊 Используются для построения аналитических отчетов (например, оборотно-сальдовая ведомость).
- 🔗 Часто применяются для расчета себестоимости (например, регистр
"УчетЗатрат").
Примеры использования:
- 📈 Обороты по счетам бухгалтерского учета (Дт/Кт).
- 💸 Движение денежных средств по статьям ДДС.
- 🏭 Затраты на производство по видам расходов.
- 📊 Продажи по номенклатурным группам для анализа прибыльности.
3. Сравнение регистров остатков и оборотов: ключевые различия
Чтобы избежать ошибок при проектировании конфигурации, важно четко понимать, чем отличаются эти два типа регистров. Основные различия представлены в таблице:
| Критерий | Регистр остатков | Регистр оборотов |
|---|---|---|
| Хранение данных | Текущее состояние (остаток на дату) | Движения за период (обороты) |
| Типы движений | Приход, Расход, ПриходРасход |
Только Приход и Расход |
| Возможность корректировки | Да (документ"Корректировка записей") | Нет (корректируются исходные документы) |
| Типичные отчеты | Остатки товаров, ведомость по счетам | Оборотно-сальдовая ведомость, анализ субконто |
| Пример использования | Учет товаров на складе | Учет затрат по статьям |
Один из самых частых вопросов: можно ли заменить регистр оборотов регистром остатков? Технически да, но это приведет к избыточности данных и усложнит отчеты. Например, для анализа продаж по месяцам логичнее использовать регистр оборотов, так как он оптимизирован для работы с периодами.
Регистр остатков отвечает на вопрос"Сколько есть сейчас?", а регистр оборотов — на вопрос"Сколько прошло за период?".
4. Регистры накопления с поддержкой итогов (ускоренные)
В 1С:Предприятие 8.3 существует оптимизированный вид регистров накопления — с поддержкой итогов (ранее назывались"ускоренные регистры"). Их ключевое преимущество — повышенная скорость работы при чтении данных, особенно в крупных базах с миллионами записей.
Как это работает:
- 📊 Платформа автоматически рассчитывает и хранит промежуточные итоги по измерениям.
- ⚡ При запросе данных система использует предварительно рассчитанные итоги вместо полного перебора записей.
- 🔧 Настраивается в свойствах регистра (флаг
"Вести итоги").
Когда стоит использовать:
- 📈 В базах с большим объемом данных (более 100 тыс. записей в регистре).
- 📊 Для отчетов, где критична скорость формирования (например, остатки по складам в реальном времени).
- 🔄 В регистрах с частыми выборками по нескольким измерениям (например, остатки по складу + номенклатуре + характеристике).
Включайте поддержку итогов только для тех измерений, по которым часто делаются выборки. Избыточные итоги увеличивают размер базы и замедляют запись!
Ограничения:
- ⚠️ Увеличивается размер базы данных (итоги занимают дополнительное место).
- ⚠️ Замедляется запись данных (при добавлении движений пересчитываются итоги).
- ⚠️ Не поддерживаются для регистров оборотов (только для остатков).
5. Виртуальные таблицы регистров накопления
Для удобства работы с данными регистров в 1С предусмотрены виртуальные таблицы — это специальные представления данных, которые позволяют получать информацию без написания сложных запросов. Они делятся на несколько типов:
5.1. Виртуальные таблицы остатков
Позволяют получить остатки на конкретную дату. Примеры:
Остатки— остатки по всем измерениям.ОстаткиИОбороты— остатки + обороты за период.Обороты— только обороты (для регистров остатков).
5.2. Виртуальные таблицы оборотов
Используются для регистров оборотов. Примеры:
Обороты— обороты за период.ОборотыСДетями— обороты с детализацией по документам.
Пример запроса к виртуальной таблице остатков:
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
ТоварыНаСкладахОстатки.Склад КАК Склад,
ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&ТекущаяДата) КАК ТоварыНаСкладахОстатки
Убедиться, что регистр имеет флаг"Использовать стандартные таблицы"|
Проверить права доступа к регистру|
Оптимизировать запрос (ограничить количество измерений)|
Использовать параметры (&ДатаНачала, &ДатаОкончания) для ускорения
-->
6. Регистры накопления с дополнительными реквизитами
Иногда стандартных измерений и ресурсов регистра недостаточно для решения бизнес-задач. В таких случаях используются дополнительные реквизиты — это пользовательские поля, которые можно добавить к записи регистра.
Примеры использования:
- 📦 Для регистра
"ТоварыНаСкладах"— реквизит"СрокГодности"(если нужно учитывать партии с истекающим сроком). - 💰 Для регистра
"ВзаиморасчетыСКонтрагентами"— реквизит"Договор"(если нужно детализировать задолженность по договорам). - 🏭 Для регистра
"ЗатратыНаПроизводство"— реквизит"Цех"(если нужно анализировать затраты по подразделениям).
Как добавить дополнительный реквизит:
- Открыть конфигуратор, найти нужный регистр накопления.
- В палитре свойств перейти на закладку
"Реквизиты". - Добавить новый реквизит, указать его тип (строка, число, справочник и т.д.).
- Обновить конфигурацию базы данных.
Дополнительные реквизиты увеличивают размер регистра. Если реквизит нужен только для отчетов, рассмотрите возможность хранения данных в отдельном справочнике или регистре сведений.
Ограничения:
- ⚠️ Дополнительные реквизиты не участвуют в формировании итогов (даже если регистр поддерживает итоги).
- ⚠️ Нельзя использовать в виртуальных таблицах как измерения (только как ресурсы или отдельные поля).
- ⚠️ При изменении типа реквизита требуется полное перепроведение документов.
7. Типичные ошибки при работе с регистрами накопления
Даже опытные разработчики иногда допускают ошибки при проектировании и использовании регистров накопления. Рассмотрим наиболее распространенные:
7.1. Неправильный выбор типа регистра
Частая ошибка — использование регистра остатков там, где нужен регистр оборотов, и наоборот. Например:
- ❌ Ошибка: Для учета продаж по месяцам создают регистр остатков и хранят в нем обороты. Это приводит к избыточности данных и усложняет отчеты.
- ✅ Решение: Использовать регистр оборотов с периодичностью
"Месяц".
7.2. Избыточные измерения
Добавление лишних измерений увеличивает размер регистра и замедляет работу. Например:
- ❌ Ошибка: В регистре
"ТоварыНаСкладах"добавляют измерение"Организация", хотя в базе только одна организация. - ✅ Решение: Убрать ненужные измерения или заменить их реквизитами.
7.3. Неправильная настройка периодичности
Для регистров оборотов критично правильно выбрать периодичность (день, месяц, квартал). Ошибки:
- ❌ Ошибка: Для регистра
"ПродажиПоДням"устанавливают периодичность"Месяц", теряя детализацию. - ✅ Решение: Выбрать периодичность, соответствующую задачам анализа (например,
"День"для ежедневных отчетов).
Перед созданием регистра составьте список отчетов, которые будут к нему обращаться. Это поможет избежать избыточных измерений и неправильной периодичности.
7.4. Игнорирование механизма корректировок
Многие забывают, что для исправления ошибок в регистрах остатков предусмотрен специальный документ "Корректировка записей регистров". Вместо этого:
- ❌ Ошибка: Вносят исправления напрямую в регистр через
"Все функции"или ручные операции. - ✅ Решение: Использовать документ корректировки — это сохраняет историю изменений и не нарушает целостность данных.
8. Практические примеры использования регистров накопления
Рассмотрим реальные сценарии применения регистров в типовых конфигурациях 1С.
8.1. Учет товарных остатков на складах
Для этой задачи используется регистр остатков "ТоварыНаСкладах" со следующей структурой:
- Измерения:
Склад,Номенклатура,Характеристика(если нужна детализация по размерам/цветам). - Ресурсы:
Количество,Сумма. - Движения: формируются документами
"Поступление товаров"(приход),"Реализация товаров"(расход).
Пример запроса для получения остатков по складу:
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Номенклатура.Наименование КАК Товар,
ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&ТекущаяДата, Склад = &ТекущийСклад) КАК ТоварыНаСкладахОстатки
УПОРЯДОЧИТЬ ПО
Товар
8.2. Учет взаиморасчетов с контрагентами
Для учета дебиторской и кредиторской задолженности используется регистр остатков "ВзаиморасчетыСКонтрагентами":
- Измерения:
Контрагент,Договор,ВалютаВзаиморасчетов. - Ресурсы:
Сумма,СуммаПогашения. - Движения: формируются документами
"Поступление на расчетный счет","Списание с расчетного счета","Реализация".
Пример отчета по задолженности:
ВЫБРАТЬ
ВзаиморасчетыОстатки.Контрагент.Наименование КАК Контрагент,
ВзаиморасчетыОстатки.СуммаОстаток КАК Задолженность
ИЗ
РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ТекущаяДата) КАК ВзаиморасчетыОстатки
ГДЕ
ВзаиморасчетыОстатки.СуммаОстаток <> 0
8.3. Учет затрат на производство
Для анализа затрат по статьям и центрам финансовой ответственности (ЦФО) используется регистр оборотов "УчетЗатрат":
- Измерения:
СтатьяЗатрат,ЦФО,НоменклатурнаяГруппа. - Ресурсы:
Сумма,Количество. - Периодичность:
"Месяц"(если анализ ведется помесячно).
Пример анализа затрат по ЦФО:
ВЫБРАТЬ
УчетЗатратОбороты.ЦФО.Наименование КАК ЦентрЗатрат,
СУММА(УчетЗатратОбороты.СуммаОборот) КАК СуммаЗатрат
ИЗ
РегистрНакопления.УчетЗатрат.Обороты(&НачалоМесяца, &КонецМесяца,) КАК УчетЗатратОбороты
СГРУППИРОВАТЬ ПО
УчетЗатратОбороты.ЦФО.Наименование
Как ускорить отчеты по регистрам оборотов?
Если отчет формируется медленно, попробуйте:
1. Ограничить период выборки (например, вместо"за все время" брать"за год").
2. Использовать виртуальную таблицу с предварительной агрегацией (например, ОборотыСАгрегацией).
3. Добавить индексы на часто используемые измерения (в конфигураторе, закладка"Индексы").
4. Перенести часть логики в запрос (например, фильтрацию по сумме делать через ГДЕ, а не в коде 1С).
FAQ: Частые вопросы по регистрам накопления в 1С
❓ Можно ли в одном регистре накопления хранить и остатки, и обороты?
Нет, это разные типы регистров. Регистр остатков хранит текущее состояние, а регистр оборотов — движения за период. Если нужны и остатки, и обороты, создайте два отдельных регистра или используйте виртуальную таблицу ОстаткиИОбороты для регистра остатков.
❓ Как исправить ошибку в регистре накопления, если документ уже проведен?
Есть несколько способов:
- Отменить проведение документа, исправить его и провести заново.
- Создать документ
"Корректировка записей регистров"(для регистров остатков). - Использовать обработку
"Групповая обработка справочников и документов"для массового исправления.
⚠️ Не рекомендуется править записи регистра напрямую через "Все функции" — это может нарушить целостность данных.
❓ Почему в отчете не отображаются данные из регистра накопления?
Возможные причины:
- Документ не проведен (проверьте статус документа).
- Неверно указан период в запросе (например, запрашиваете остатки на будущую дату).
- Ошибка в фильтрах запроса (проверьте условия в секции
ГДЕ). - Отсутствуют права на чтение регистра (проверьте роли пользователя).
Для диагностики используйте отчет "Анализ регистра накопления" (доступен в режиме предприятия).
❓ Как перенести данные из одного регистра накопления в другой?
Для переноса данных можно:
- Использовать обработку
"Выгрузка/загрузка данных"(для больших объемов). - Написать программный код с использованием объекта
РегистрНакопленияМенеджерЗаписи. - Создать документ, который будет формировать движения в обоих регистрах.
Пример кода для переноса остатков:
Процедура ПеренестиОстатки
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Источник.Склад КАК Склад,
| Источник.Номенклатура КАК Номенклатура,
| Источник.КоличествоОстаток КАК Количество
|ИЗ
| РегистрНакопления.СтарыйРегистр.Остатки(&ТекущаяДата) КАК Источник";
Результат = Запрос.Выполнить;
Выборка = Результат.Выбрать;
Запись = РегистрыНакопления.НовыйРегистр.СоздатьМенеджерЗаписи;
Пока Выборка.Следующий Цикл
Запись.Склад = Выборка.Склад;
Запись.Номенклатура = Выборка.Номенклатура;
Запись.Количество = Выборка.Количество;
Запись.Записать;
КонецЦикла;
КонецПроцедуры
❓ Можно ли создать регистр накопления с периодичностью"год"?
Да, в 1С:Предприятие 8.3 для регистров оборотов можно задать произвольную периодичность, включая "Год". Однако учитывайте:
- Такой регистр не подойдет для детального анализа (например, помесячных отчетов).
- Данные будут агрегироваться за весь год, что может скрывать важные колебания.
- Для большинства задач достаточно периодичности
"Месяц"или"Квартал".