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

Но что именно делает РВ? Почему его нельзя заменить обычными справочниками или документами? И как правильно с ним работать, чтобы не допустить ошибок в учёте? В этой статье мы разберём принципы работы регистров накопления, их виды, типичные ошибки и практические примеры применения — от торговли до бухгалтерии. Материал будет полезен как пользователям (чтобы понимать, откуда берутся цифры в отчётах), так и разработчикам (чтобы грамотно проектировать конфигурации).

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

1. Что такое РВ в 1С: определение и назначение

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

  • 📦 Приход (поступление товаров, начисление зарплаты, поступление денег)
  • 📤 Расход (продажа, списание, выплата)
  • 📊 Остатки (сколько осталось на складе, на счёте, в кассе)

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

  1. Списывает товар со склада (уменьшает остаток в РВ «Товары на складах»)
  2. Фиксирует выручку (увеличивает остаток в РВ «Денежные средства»)
  3. Обновляет данные для отчётов (например, «Ведомость по товарам»)

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

📊 Где вы чаще всего сталкиваетесь с регистрами накопления в 1С?
В торговле (остатки товаров)
В бухгалтерии (учёт денег)
В зарплате (начисления)
В производстве (материалы)
Не знаю, что это

2. Виды регистров накопления: остатки vs обороты

В 1С:Предприятие существует два основных типа регистров накопления, которые решают разные задачи:

Тип РВ Назначение Примеры использования Особенности
Регистр остатков Хранит текущие остатки по разрезам (например, сколько товаров на складе сейчас) Товары на складах, денежные средства на счётах, задолженность контрагентов Поддерживает ОстаткиИОбороты, позволяет получать данные «на дату»
Регистр оборотов Фиксирует только движения (приход/расход) без хранения остатков Учёт продаж по менеджерам, расход материалов в производстве Быстрее работает при большом объёме данных, но не показывает текущие остатки

Какой тип выбрать? Всё зависит от задачи:

  • 🔹 Нужно знать текущий остаток (например, сколько денег на счёте) → используйте регистр остатков.
  • 🔹 Важны только движения (например, сколько продал каждый менеджер) → достаточно регистра оборотов.
  • 🔹 Нужно и то, и другое → создайте оба регистра или используйте регистр остатков (он умеет показывать и обороты).

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

💡

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

3. Структура регистра накопления: из чего состоит РВ

Любой регистр накопления в состоит из трёх ключевых частей:

  1. Измерения — это «разрезы», по которым ведётся учёт (например, Склад, Номенклатура, Контрагент). Они определяют, по чему будут группироваться данные.
  2. Ресурсы — это что учитывается (например, Количество, Сумма). Ресурсы хранят числовые значения.
  3. Реквизиты — дополнительная информация (например, Валюта, СтавкаНДС). Они не участвуют в группировке, но могут использоваться в отчётах.

Пример структуры регистра ТоварыНаСкладах:

  • 📌 Измерения: Склад, Номенклатура, ХарактеристикаНоменклатуры
  • 💰 Ресурсы: Количество, Сумма
  • ℹ️ Реквизиты: Серия, СрокГодности

Почему это важно? От правильного выбора измерений зависит:

  • 🔍 Детализация отчётов (можно ли будет увидеть остатки по каждому складу отдельно?).
  • Производительность (чем больше измерений, тем медленнее работают отчёты).
  • 🛠️ Гибкость учёта (можно ли будет добавить новый разрез без переделки конфигурации?).
Что будет, если неверно выбрать измерения?

Если в регистре ТоварыНаСкладах не указать измерение Склад, система не сможет различать остатки на разных складах. В результате отчёт покажет общий остаток по всем складам, что сделает учёт бесполезным.

4. Как работают регистры накопления: механизм движений

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

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

    Движение.Приход(

    Склад ="Основной",

    Номенклатура ="Стул офисный",

    Количество = 10

    );

  4. Остаток товара «Стул офисный» на складе «Основной» увеличивается на 10 штук.

Важные нюансы:

  • 🔄 Движения могут быть приходными (увеличивают остаток) и расходными (уменьшают).
  • ⏱️ Движения формируются только при проведении документа. Если документ не проведён — регистр не изменится.
  • 🔗 Один документ может формировать движения в нескольких регистрах (например, поступление товаров обновляет и ТоварыНаСкладах, и ВзаиморасчётыСКонтрагентами).
💡

Если в отчёте неверные остатки — проверьте, проведены ли документы, которые должны были их изменить.

Что происходит при отмене проведения? Система автоматически стирает все движения, созданные документом, и возвращает остатки к состоянию «до проведения». Это гарантирует целостность данных.

⚠️ Внимание: Если вручную изменить движения в регистре (например, через «Все функции» → «Регистры накопления»), это может привести к расхождениям. не отслеживает такие изменения автоматически!

5. Типичные ошибки при работе с РВ и как их избежать

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

Ошибка Причина Как исправить
Остатки не обновляются Документ не проведён или в нём не прописаны движения Проведите документ или проверьте процедуру ОбработкаПроведения
Отрицательные остатки Списание товара без проверки наличия или ошибка в движениях Настройте контроль остатков в модуле документа или исправьте движения
Медленные отчёты Слишком много измерений или не оптимизированные запросы Уменьшите количество измерений или используйте индексы

Как предотвратить ошибки?

Убедиться, что документы проведены|

Проверить наличие движений в регистре (Все функции → Регистры накопления)|

Сверить остатки в отчёте с данными регистра (ОстаткиИОбороты)|

Настроить контроль отрицательных остатков в параметрах учёта-->

Особое внимание уделите контролю остатков. В большинстве конфигураций (например, «1С:УТ» или «1С:ERP») есть настройка, которая запрещает списывать товар, если его нет на складе. Если она отключена — вы рискуете получить отрицательные остатки, которые потом сложно исправить.

⚠️ Внимание: В некоторых конфигурациях (например, в старых версиях «1С:Бухгалтерии») регистры накопления могут иметь ограничение на количество измерений. Превышение лимита приведёт к ошибке при обновлении базы.

6. Практические примеры использования РВ

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

📦 Торговля: учёт товаров на складах

Регистр: ТоварыНаСкладах (регистр остатков)

  • 📌 Измерения: Склад, Номенклатура, Характеристика
  • 💰 Ресурсы: Количество, Сумма
  • 📊 Отчёты: «Ведомость по товарам на складах», «Остатки товаров»

💵 Бухгалтерия: денежные средства

Регистр: ДенежныеСредства (регистр остатков)

  • 📌 Измерения: Счёт, Валюта, СтатьяДвиженияДенежныхСредств
  • 💰 Ресурсы: Сумма
  • 📊 Отчёты: «Анализ счёта», «Кассовая книга»

👔 Зарплата: начисления и удержания

Регистр: НачисленияЗарплаты (регистр оборотов)

  • 📌 Измерения: Сотрудник, ВидНачисления, Месяц
  • 💰 Ресурсы: Сумма, Количество (дней, часов)
  • 📊 Отчёты: «Расчётная ведомость», «Анализ начислений»

В каждом случае структуру регистра определяют бизнес-процессы компании. Например, если в торговле важно учитывать серийные номера товаров, в регистр добавляют измерение Серия. Если в бухгалтерии ведут учёт по нескольким организациям — добавляют измерение Организация.

💡

Чтобы увидеть все регистры накопления в вашей базе, перейдите в Конфигуратор → Объекты конфигурации → Регистры накопления.

7. Как программисту работать с РВ: основные методы

Если вы разработчик , вам понадобятся знания о том, как читать и изменять данные в регистрах накопления. Вот ключевые методы:

📖 Чтение данных

Для получения остатков или оборотов используйте функции:


// Получение остатков на дату

Остатки = РегистрыНакопления.ТоварыНаСкладах.ОстаткиИОбороты(

НачалоДня(ТекущаяДата),

"Склад = &Склад"

);

// Получение оборотов за период

Обороты = РегистрыНакопления.Продажи.Обороты(

НачалоМесяца(ТекущаяДата),

КонецМесяца(ТекущаяДата),

"Менеджер = &Менеджер"

);

✏️ Изменение данных

Чтобы вручную добавить или изменить движения, используйте:


// Создание движения прихода

Движение = РегистрыНакопления.ТоварыНаСкладах.СоздатьДвижениеПриход;

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

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

Движение.Количество = 5;

Движение.Записать;

// Удаление движений документа

РегистрыНакопления.ТоварыНаСкладах.УдалитьДвиженияДокумента(Документ);

Важно помнить:

  • 🔧 Изменять движения вручную можно только в экстренных случаях (например, для исправления ошибок).
  • 🔄 После ручного изменения движений нужно перепровести связанные документы.
  • 🛡️ Всегда делайте резервную копию перед массовыми изменениями в регистрах.
⚠️ Внимание: В некоторых конфигурациях (например, «1С:ERP») для работы с регистрами накопления требуются права «Администрирование». Без них система не позволит изменять движения.

8. Оптимизация работы с регистрами накопления

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

🚀 Ускорение отчётов

  • 📉 Уменьшите количество измерений — оставьте только те, которые действительно нужны для анализа.
  • 🔍 Используйте отборы — не запрашивайте данные по всем складам, если нужен только один.
  • 🗃️ Настройте индексы — в конфигураторе проверьте, что для часто используемых полей стоят индексы.

🗑️ Очистка устаревших данных

Если в регистре накопилось много старых данных (например, движения за 2010 год), их можно архивировать или удалить:


// Удаление движений старше 5 лет

РегистрыНакопления.ТоварыНаСкладах.УдалитьДвиженияДо(

НачалоГода(ДобавитьМесяц(ТекущаяДата, -60))

);

Но будьте осторожны:

  • 📅 Удаляйте только те данные, которые гарантированно не нужны для отчётности.
  • 📑 Перед очисткой сделайте выгрузку данных в отдельный файл.
  • 🔄 После очистки перепроведите все документы, которые могли ссылаться на удалённые движения.
💡

Оптимизация регистров накопления — это баланс между скоростью работы и детализацией данных. Не жертвуйте важными измерениями ради производительности!

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

🔹 Можно ли обойтись без регистров накопления, используя только документы и справочники?

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

🔹 Как узнать, какой регистр накопления используется в отчёте?

Откройте отчёт в режиме Конфигуратор, найдите его модуль и посмотрите, какие регистры запрашиваются в коде (обычно это функции ОстаткиИОбороты или Обороты). Также можно воспользоваться Все функции → Анализ использования.

🔹 Почему в отчёте не совпадают остатки с данными регистра?

Причины могут быть разные:

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

Чтобы найти проблему, сравните данные отчёта с прямым запросом к регистру через ОстаткиИОбороты.

🔹 Можно ли перенести данные из одного регистра в другой?

Да, но это требует аккуратности. Можно использовать:

  • Стандартную обработку «Выгрузка/загрузка данных» (для переноса между базами).
  • Запрос с конструкцией ВЫБРАТЬ... ПОМЕСТИТЬ (для переноса внутри одной базы).
  • Ручное создание движений через СоздатьДвижениеПриход/Расход.
Важно: после переноса проверьте остатки и при необходимости перепроведите документы.

🔹 Как восстановить данные в регистре, если они были удалены?

Способы восстановления зависят от ситуации:

  • Если есть резервная копия — восстановите базу из неё.
  • Если движений мало — перепроведите все документы за период.
  • Если данных нет — придётся вручную вносить корректирующие документы (например, «Оприходование товаров» или «Корректировка записей регистров»).
⚠️ Внимание: Восстановление данных в регистрах — сложная операция. Если не уверены в своих силах, обратитесь к специалисту.