Как убрать лишние движения из регистра бухгалтерии
Содержание
Движения в регистр бухгалтерии «Хозрасчётный» пишут документы и ручные операции — напрямую строки регистра в типовой конфигурации не правят. Поэтому «очистить регистр бухгалтерии» в 1С на практике значит: отменить проведение документов-регистраторов, удалить операции , введённые вручную, либо стереть движения обработкой через набор записей. После любого из способов — пересчитать итоги .
Ниже — рабочие способы для 1С:Бухгалтерии 8.3 (интерфейс «Такси»): от безопасной отмены проведения до полной очистки кодом. Выбор зависит от того, чистите ли вы один документ, период или весь регистр целиком, и от того, закрыт ли уже отчётный период. Чем точнее вы определите масштаб проблемы, тем меньше рискуете задеть корректные проводки.
Любое массовое удаление движений делают только на копии базы или после резервной копии и в монопольном режиме (остальные пользователи должны выйти). Восстановить стёртые движения без копии нельзя.
Откуда в регистре берутся лишние проводки
Записи регистра бухгалтерии почти всегда вторичны — у каждой есть регистратор (документ или операция). Разберёмся, что чаще всего оставляет мусор:
- 🧾 Ручные корректировки. Операции, введённые вручную, и ручная корректировка движений в документах. Платформа их не контролирует — что набрали, то и легло в регистр.
- 🔁 Двойное проведение. Один и тот же факт провели и типовым документом, и ручной операцией. В итоге сумма задвоилась.
- 🧩 Сбой при обмене или переносе. Загрузка из другой базы или внешняя обработка записали движения в обход проверок.
- 🛠 Остатки после тестов. В рабочую базу попали документы из тренировочного периода, их забыли отменить.
- ⚙️ Ошибка в доработке. Расширение или внешняя обработка пишет в регистр напрямую набором записей с неверным отбором.
Прежде чем чистить, найдите источник. Если удалить движения, но оставить документ, который их создаёт, при следующем перепроведении всё вернётся. Простой пример: кассир дважды провёл приходный ордер на 50 000 ₽, в оборотке по счёту 50 оказалось 100 000 ₽. Удалять строки регистра бессмысленно — нужно убрать один из двух документов. Сначала понимаем природу ошибки, потом выбираем способ.
Как посмотреть движения документа перед очисткой
Открывать регистр вслепую не нужно — проще смотреть движения конкретного документа.
- Откройте документ.
- В командной панели нажмите кнопку
Дт Кт(показать проводки и другие движения документа). - На вкладке Бухгалтерский учёт видны строки, попавшие именно в регистр «Хозрасчётный»; соседние вкладки — движения по другим регистрам этого же документа.
Чтобы увидеть всё содержимое регистра за период, используйте отчёт Отчёты → Движения документа или универсальный отчёт по регистру накопления/бухгалтерии (Администрирование → раздел с отчётами по регистрам). Так вы поймёте, движения каких регистраторов лишние, и не будете чистить лишнего.
Если лишние проводки видны в оборотно-сальдовой ведомости, провалитесь по сумме двойным щелчком до карточки счёта, а оттуда — до документа. Это быстрее, чем перебирать журнал: ОСВ сразу покажет, какой счёт и субконто задвоены, а карточка — конкретный регистратор. Запомните эти документы: именно их проводки вы будете убирать.
Отмена проведения: убираем проводки одного документа
Самый частый и самый безопасный способ. Отмена проведения удаляет движения документа сразу по всем регистрам, но сам документ остаётся — его можно поправить и провести заново.
Из списка документов:
- Выделите один или несколько документов.
- Нажмите Ещё → Отменить проведение (в некоторых списках команда в командной панели сразу).
- Проверьте по кнопке
Дт Кт, что движений не осталось.
Из открытого документа — та же команда Ещё → Отменить проведение. Пометка «проведён» снимется, строки регистра исчезнут.
Команда работает и на выделенной группе: отметьте мышью с зажатым Ctrl или Shift нужные строки журнала и отмените проведение сразу у всех. Для десятка-другого документов это быстрее обработки и безопаснее — платформа сама аккуратно снимет движения по всем регистрам каждого документа.
Если нужно именно исправить суммы, а не удалить, не отменяйте проведение, а откройте движения документа, включите ручную корректировку и поправьте строки. Но помните: перепроведение затрёт ручные правки.
Отмена проведения не удаляет документ и не нарушает нумерацию. Это штатная операция, её можно повторять сколько угодно раз.
Групповое перепроведение и чистка ручных операций
Когда «грязь» растянута по периоду, по одному документу чистить долго. Есть два инструмента.
Групповое перепроведение документов . Операции → группа «Сервис» → Групповое перепроведение документов. Задайте период и, при необходимости, отбор по видам документов, запустите. Платформа перепроводит документы в хронологическом порядке, по дате и времени, и каждый формирует движения заново по актуальным данным — старые неверные строки заменяются корректными.
Групповое перепроведение удобно после того, как вы поправили настройки учётной политики, счета в справочниках или реквизиты документов: достаточно перепровести период, а не открывать каждый документ. Учтите только, что перепроведение сбрасывает результаты закрытия месяца внутри периода — регламентные операции придётся запустить повторно. Групповое перепроведение в рабочее время грузит базу и блокирует документы — запускайте в монопольном режиме или после окончания работы пользователей.
Операции, введённые вручную. Открываются через Операции → Операции, введённые вручную. Это обычные документы, поэтому:
- Выделите ненужные операции.
- Пометьте на удаление (Ещё → Пометить на удаление).
- Выполните Операции → Удаление помеченных объектов с контролем ссылочной целостности.
Движения ручной операции удаляются вместе с ней. Если на операцию кто-то ссылается, удаление покажет это — разберитесь со ссылками, а не снимайте контроль.
Когда чистить нельзя — сторнируйте. Если ошибочная проводка попала в уже сданный и закрытый период, удалять её задним числом неправильно: изменится отчётность, по которой вы уже отчитались. В этом случае движения не стирают, а сторнируют — вводят обратную проводку текущей датой. В 1С:Бухгалтерии это ручная операция с видом Сторно движений документа: создаёте операцию, выбираете исходный документ, и программа формирует его движения с минусом. Остатки выправляются, а история правок сохраняется. Выбор между очисткой и сторно зависит от того, закрыт период или нет.
Полная очистка регистра обработкой через набор записей
Полностью стереть регистр бухгалтерии кнопкой в типовой конфигурации нельзя — это делают обработкой. Подход один: удалять движения по регистратору, записывая пустой набор записей.
Для движений одного документа код выглядит так:
НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(СсылкаНаДокумент);
НаборЗаписей.Записать(); // набор пустой → движения регистратора удаляются
Пустой набор с установленным отбором по регистратору стирает все строки этого документа в регистре.
Для массовой очистки сначала запросом по регистру соберите список регистраторов за период, затем в цикле повторите удаление для каждого. Запрос только читает данные — он безопасен и помогает не пропустить ни один документ:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Хозрасчетный.Регистратор КАК Регистратор
|ИЗ
| РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
|ГДЕ
| Хозрасчетный.Период МЕЖДУ &Начало И &Конец";
Запрос.УстановитьПараметр("Начало", НачалоПериода);
Запрос.УстановитьПараметр("Конец", КонецПериода);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Набор = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(Выборка.Регистратор);
Набор.Записать(); // набор пустой → движения удаляются
КонецЦикла;
Тот же приём работает для любого регистра бухгалтерии в вашей конфигурации — поменяйте имя регистра. Но помните: вы удаляете только проводки, сами документы остаются.
Прямое удаление движений разрывает связь «документ → проводки». Документ останется «проведённым», а движений уже не будет — отчёты и остатки станут некорректными. После такой очистки документы нужно либо перепровести, либо тоже удалить.
Если у вас нет навыков встроенного языка, не пишите такую обработку «на скорую руку» в рабочей базе. Отработайте её на копии, проверьте результат отчётами и только потом переносите на рабочую базу в монопольном режиме. Для разовой задачи безопаснее отмена проведения и групповое перепроведение, описанные выше.
Почему чистить регистр напрямую через SQL не нужно
Иногда советуют «снести лишние строки запросом» или напрямую в SQL. Так делать не стоит.
- Консоль запросов только читает. Язык запросов 1С не меняет данные — удалить строки регистра запросом нельзя физически. Консоль годится, чтобы найти лишние регистраторы, а не чтобы чистить.
- Прямой SQL по таблицам 1С — вне поддержки. Структуру таблиц задаёт платформа, у регистра бухгалтерии есть связанные таблицы движений, итогов и субконто. Ручная правка в СУБД в обход платформы ломает согласованность, после чего база может не открыться. Такие изменения не поддерживаются фирмой «1С».
Всё, что нужно, решается штатно: отбор по регистратору + пустой набор записей (код выше) и пересчёт итогов. SQL оставьте в покое.
Пересчёт итогов и проверка целостности после очистки
Регистр бухгалтерии хранит не только движения, но и рассчитанные итоги — заранее подсчитанные остатки и обороты на границы периодов. Платформа держит их отдельно, чтобы отчёты строились быстро и не пересчитывали миллионы проводок каждый раз. После массового удаления или перепроведения итоги становятся неактуальными — их надо пересчитать, иначе оборотно-сальдовая покажет старые остатки, хотя движений уже нет.
В режиме Конфигуратора:
- Завершите работу пользователей (операция требует монопольного доступа).
- Конфигуратор → Администрирование → Тестирование и исправление…
- Отметьте Пересчёт итогов (при подозрении на повреждение — также проверку логической и ссылочной целостности).
- Выберите режим Тестирование и исправление и запустите.
Для крупных баз пересчёт итогов занимает время — планируйте на нерабочие часы. Тестирование и исправление запускают только после резервной копии: при выборе «исправление» платформа меняет данные.
Отдельно проверьте логическую и ссылочную целостность — в том же окне Тестирования и исправления. Логическая проверка ищет несогласованность между таблицами движений и итогов, ссылочная — «висячие» ссылки на удалённые объекты. Если очистка задела что-то лишнее, именно эти проверки покажут проблему. Для простого исправления итогов хватит одного пересчёта, полную проверку запускают при подозрении на повреждение базы.
Проверить результат можно отчётами: оборотно-сальдовой ведомостью и анализом счёта за период. Постройте ОСВ до очистки и после — разница должна совпадать ровно с теми суммами, которые вы убирали. Если остатки на начало и конец сходятся с ожидаемыми, а задвоенных сумм нет — очистка прошла корректно.
Частые ошибки и как их избежать
- ❌ Удалили движения, оставили документ. При перепроведении или закрытии месяца проводки вернутся. Решение: отменять проведение, а не стирать строки точечно.
- ❌ Почистили рабочую базу без копии. Откатить нечем. Всегда делайте резервную копию или работайте на копии.
- ❌ Забыли пересчитать итоги. Движений уже нет, а оборотно-сальдовая показывает старые остатки. Запустите пересчёт итогов.
- ❌ Сняли контроль ссылочной целостности при удалении. Получите «висячие ссылки» в других документах. Разбирайтесь со ссылками, контроль не отключайте.
- ❌ Чистили в рабочее время. Групповое перепроведение и тестирование блокируют базу. Делайте в монопольном режиме.