Как убрать лишние движения из регистра бухгалтерии

· 9 мин

Содержание

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

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

Любое массовое удаление движений делают только на копии базы или после резервной копии и в монопольном режиме (остальные пользователи должны выйти). Восстановить стёртые движения без копии нельзя.

Откуда в регистре берутся лишние проводки

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

  • 🧾 Ручные корректировки. Операции, введённые вручную, и ручная корректировка движений в документах. Платформа их не контролирует — что набрали, то и легло в регистр.
  • 🔁 Двойное проведение. Один и тот же факт провели и типовым документом, и ручной операцией. В итоге сумма задвоилась.
  • 🧩 Сбой при обмене или переносе. Загрузка из другой базы или внешняя обработка записали движения в обход проверок.
  • 🛠 Остатки после тестов. В рабочую базу попали документы из тренировочного периода, их забыли отменить.
  • ⚙️ Ошибка в доработке. Расширение или внешняя обработка пишет в регистр напрямую набором записей с неверным отбором.

Прежде чем чистить, найдите источник. Если удалить движения, но оставить документ, который их создаёт, при следующем перепроведении всё вернётся. Простой пример: кассир дважды провёл приходный ордер на 50 000 ₽, в оборотке по счёту 50 оказалось 100 000 ₽. Удалять строки регистра бессмысленно — нужно убрать один из двух документов. Сначала понимаем природу ошибки, потом выбираем способ.

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

Открывать регистр вслепую не нужно — проще смотреть движения конкретного документа.

  1. Откройте документ.
  2. В командной панели нажмите кнопку Дт Кт (показать проводки и другие движения документа).
  3. На вкладке Бухгалтерский учёт видны строки, попавшие именно в регистр «Хозрасчётный»; соседние вкладки — движения по другим регистрам этого же документа.

Чтобы увидеть всё содержимое регистра за период, используйте отчёт Отчёты → Движения документа или универсальный отчёт по регистру накопления/бухгалтерии (Администрирование → раздел с отчётами по регистрам). Так вы поймёте, движения каких регистраторов лишние, и не будете чистить лишнего.

Если лишние проводки видны в оборотно-сальдовой ведомости, провалитесь по сумме двойным щелчком до карточки счёта, а оттуда — до документа. Это быстрее, чем перебирать журнал: ОСВ сразу покажет, какой счёт и субконто задвоены, а карточка — конкретный регистратор. Запомните эти документы: именно их проводки вы будете убирать.

Что именно нужно очистить?

Отмена проведения: убираем проводки одного документа

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

Из списка документов:

  1. Выделите один или несколько документов.
  2. Нажмите Ещё → Отменить проведение (в некоторых списках команда в командной панели сразу).
  3. Проверьте по кнопке Дт Кт, что движений не осталось.

Из открытого документа — та же команда Ещё → Отменить проведение. Пометка «проведён» снимется, строки регистра исчезнут.

Команда работает и на выделенной группе: отметьте мышью с зажатым Ctrl или Shift нужные строки журнала и отмените проведение сразу у всех. Для десятка-другого документов это быстрее обработки и безопаснее — платформа сама аккуратно снимет движения по всем регистрам каждого документа.

Если нужно именно исправить суммы, а не удалить, не отменяйте проведение, а откройте движения документа, включите ручную корректировку и поправьте строки. Но помните: перепроведение затрёт ручные правки.

Отмена проведения не удаляет документ и не нарушает нумерацию. Это штатная операция, её можно повторять сколько угодно раз.

Групповое перепроведение и чистка ручных операций

Когда «грязь» растянута по периоду, по одному документу чистить долго. Есть два инструмента.

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

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

Операции, введённые вручную. Открываются через Операции → Операции, введённые вручную. Это обычные документы, поэтому:

  1. Выделите ненужные операции.
  2. Пометьте на удаление (Ещё → Пометить на удаление).
  3. Выполните Операции → Удаление помеченных объектов с контролем ссылочной целостности.

Движения ручной операции удаляются вместе с ней. Если на операцию кто-то ссылается, удаление покажет это — разберитесь со ссылками, а не снимайте контроль.

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

Перед массовой очисткой движений
Выполнено: 0 / 5

Полная очистка регистра обработкой через набор записей

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

Для движений одного документа код выглядит так:

НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(СсылкаНаДокумент);
НаборЗаписей.Записать(); // набор пустой → движения регистратора удаляются

Пустой набор с установленным отбором по регистратору стирает все строки этого документа в регистре.

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

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
|   Хозрасчетный.Регистратор КАК Регистратор
|ИЗ
|   РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
|ГДЕ
|   Хозрасчетный.Период МЕЖДУ &Начало И &Конец";
Запрос.УстановитьПараметр("Начало", НачалоПериода);
Запрос.УстановитьПараметр("Конец",  КонецПериода);

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    Набор = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    Набор.Отбор.Регистратор.Установить(Выборка.Регистратор);
    Набор.Записать(); // набор пустой → движения удаляются
КонецЦикла;

Тот же приём работает для любого регистра бухгалтерии в вашей конфигурации — поменяйте имя регистра. Но помните: вы удаляете только проводки, сами документы остаются.

Прямое удаление движений разрывает связь «документ → проводки». Документ останется «проведённым», а движений уже не будет — отчёты и остатки станут некорректными. После такой очистки документы нужно либо перепровести, либо тоже удалить.

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

Почему чистить регистр напрямую через SQL не нужно

Иногда советуют «снести лишние строки запросом» или напрямую в SQL. Так делать не стоит.

  • Консоль запросов только читает. Язык запросов 1С не меняет данные — удалить строки регистра запросом нельзя физически. Консоль годится, чтобы найти лишние регистраторы, а не чтобы чистить.
  • Прямой SQL по таблицам 1С — вне поддержки. Структуру таблиц задаёт платформа, у регистра бухгалтерии есть связанные таблицы движений, итогов и субконто. Ручная правка в СУБД в обход платформы ломает согласованность, после чего база может не открыться. Такие изменения не поддерживаются фирмой «1С».

Всё, что нужно, решается штатно: отбор по регистратору + пустой набор записей (код выше) и пересчёт итогов. SQL оставьте в покое.

Пересчёт итогов и проверка целостности после очистки

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

В режиме Конфигуратора:

  1. Завершите работу пользователей (операция требует монопольного доступа).
  2. Конфигуратор → Администрирование → Тестирование и исправление…
  3. Отметьте Пересчёт итогов (при подозрении на повреждение — также проверку логической и ссылочной целостности).
  4. Выберите режим Тестирование и исправление и запустите.

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

Отдельно проверьте логическую и ссылочную целостность — в том же окне Тестирования и исправления. Логическая проверка ищет несогласованность между таблицами движений и итогов, ссылочная — «висячие» ссылки на удалённые объекты. Если очистка задела что-то лишнее, именно эти проверки покажут проблему. Для простого исправления итогов хватит одного пересчёта, полную проверку запускают при подозрении на повреждение базы.

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

Частые ошибки и как их избежать

  • ❌ Удалили движения, оставили документ. При перепроведении или закрытии месяца проводки вернутся. Решение: отменять проведение, а не стирать строки точечно.
  • ❌ Почистили рабочую базу без копии. Откатить нечем. Всегда делайте резервную копию или работайте на копии.
  • ❌ Забыли пересчитать итоги. Движений уже нет, а оборотно-сальдовая показывает старые остатки. Запустите пересчёт итогов.
  • ❌ Сняли контроль ссылочной целостности при удалении. Получите «висячие ссылки» в других документах. Разбирайтесь со ссылками, контроль не отключайте.
  • ❌ Чистили в рабочее время. Групповое перепроведение и тестирование блокируют базу. Делайте в монопольном режиме.

Частые вопросы

Чем отмена проведения отличается от удаления документа?
Отмена проведения убирает только движения, сам документ остаётся — его можно поправить и провести заново. Удаление стирает документ целиком вместе со всеми движениями.
Можно ли очистить регистр за конкретный период, не трогая остальное?
Да — групповым перепроведением с отбором по периоду. Движения за период перестроятся, более ранние и поздние останутся нетронутыми.
После удаления движений остатки в отчётах не поменялись. Почему?
Регистр хранит рассчитанные итоги отдельно. Запустите пересчёт итогов в Тестировании и исправлении — отчёты обновятся.
Удаление движений обработкой — это безопасно?
Только на копии базы и с пониманием последствий: документ остаётся «проведённым» без проводок. Для разовых задач надёжнее отмена проведения и перепроведение.
Нужен ли монопольный режим для очистки?
Для отмены проведения одного документа — нет. Для группового перепроведения, массовой обработки и пересчёта итогов — да, иначе получите блокировки и неполный результат.