Как очистить регистры 1С 8.3: от отмены проведения до набора записей
Содержание
Чистить регистр в 1С 8.3 правильнее не «насквозь», а через документ-регистратор: отмените проведение — и движения этого документа из регистра уйдут. Записи в регистры накопления и бухгалтерии почти всегда создаются при проведении, поэтому прямое удаление строк рвёт связь с документом и ломает итоги.
Отдельная история — независимые регистры сведений: их можно править прямо в режиме «Предприятие». И есть программный способ через набор записей — для разработчика, когда документов-регистраторов тысячи.
Ниже — когда очистка вообще нужна, чем это грозит и как сделать её так, чтобы остатки и отчёты остались верными.
Когда регистр нужно чистить, а когда проблема не в нём
Прежде чем чистить, убедитесь, что причина в самом регистре, а не в документах. Типичные поводы:
- 🔁 Задвоение движений — документ провёлся дважды или остались движения от удалённого объекта.
- 📉 Неверные остатки в регистре накопления (
Товары на складах,Взаиморасчёты), которые не бьются с документами. - 🧩 Мусор после переноса данных — загрузка оставила записи без регистратора.
- 🛠 Доработка конфигурации — поменяли структуру регистра, старые записи больше не нужны.
А вот когда чистить регистр НЕ нужно:
- Остатки «кривые» из-за непроведённых или неверно заполненных документов — чистить надо документы, а регистр перезаполнится сам.
- Расходятся итоги — чаще помогает пересчёт итогов, а не удаление записей (см. раздел ниже).
- Нужно «обнулить базу для нового периода» — это делается сверткой или начальными остатками, а не ручной очисткой регистров.
Сначала откройте регистр и посмотрите колонку Регистратор. Если у записей он заполнен — это движения документов, и работать надо с документами. Пустой регистратор бывает только у независимых регистров сведений.
Что сделать до очистки: копия и разбор структуры
Перед любой операцией с регистрами сделайте резервную копию базы . Ошибка здесь не откатывается кнопкой «Отмена» — восстановить получится только из копии.
Порядок подготовки:
Тип регистра решает всё. Посмотреть его можно в Конфигураторе в дереве конфигурации (ветки Регистры накопления, Регистры сведений) или по поведению в «Предприятии»:
- Регистр накопления всегда подчинён регистратору — вручную строку не добавить.
- Регистр сведений бывает двух видов: подчинённый регистратору (заполняет документ) и независимый (можно редактировать руками).
- Регистр бухгалтерии — это проводки, их источник всегда документ.
Способы очистки — от безопасного к радикальному
Выбор зависит от того, сколько записей и откуда они взялись. Сведём методы в таблицу.
| Способ | Когда применять | Риск |
|---|---|---|
| Отмена проведения документа | Нужно убрать движения одного-двух документов | Низкий |
| Групповое перепроведение / отмена | Много документов за период | Средний: трогает остатки по всему периоду |
| Ручное редактирование регистра сведений | Независимый регистр, точечная правка | Средний: нет контроля документом |
| Программная очистка набором записей | Массовая чистка по отбору | Высокий: нужен навык разработчика |
| Прямое удаление в СУБД (SQL) | — | Критический: рвёт целостность, теряется поддержка |
О последней строке сразу: прямое удаление записей SQL-запросом в таблицах СУБД делать не нужно. Платформа хранит в своих таблицах служебные данные (итоги, индексы, ссылочную целостность), и ручная правка на уровне базы данных приводит к рассогласованию, которое 1С потом «не видит». Любая задача очистки решается штатными средствами — ниже они и разобраны.
Чтобы не путаться, какой способ брать под ваш случай:
Очистка регистра накопления через регистратор
Регистр накопления (Остатки товаров, Денежные средства, Взаиморасчёты и т. п.) чистится только через документы, которые в него пишут.
Убрать движения одного документа:
- Откройте список документов нужного вида (например,
Продажи → Реализация (акты, накладные)). - Встаньте на документ, откройте меню
Ещёв командной панели списка. - Выберите команду отмены проведения (в типовых —
Отменить проведение). - Движения этого документа исчезнут из всех регистров, куда он писал.
Отмена проведения меняет остатки с даты документа и до конца. Если по складу дальше идут расходные документы, их остатки тоже «поедут». Делайте это вне рабочего времени или предупредите пользователей.
Убрать движения за период (много документов): воспользуйтесь обработкой группового перепроведения. В «Бухгалтерии предприятия» 3.0 она лежит в разделе Операции → Сервис → Групповое перепроведение документов. Задайте период и виды документов. Обработка умеет и перепроводить (восстановить корректные движения), и, при доработке, снимать проведение.
Если цель — именно восстановить правильные остатки, а не удалить, чаще нужно не чистить, а перепровести: платформа удалит старые движения и запишет новые по текущим данным документа. Это безопаснее ручной очистки.
Альтернатива, если очистка не помогает. Когда задача — не точечно убрать движения, а «обнулить» регистры за старый период и начать с чистых остатков, ручная очистка не подходит: удалять тысячи движений поштучно долго и опасно. Для этого есть свёртка информационной базы — она закрывает период, вводит начальные остатки на новую дату и убирает старые движения штатно, с сохранением итогов. Если же проблема в одном «битом» документе, иногда проще пометить его на удаление и удалить помеченные объекты
(Администрирование → Удаление помеченных объектов) — движения уйдут вместе с документом.
Очистка регистров сведений: независимый и подчинённый
Здесь важно, кто «хозяин» записей.
Независимый регистр сведений (например, курсы валют, цены номенклатуры в некоторых конфигурациях) можно редактировать прямо в «Предприятии», если у пользователя есть права и открыта форма списка:
- Откройте форму списка регистра (через меню раздела или команду
Все функции, если включена в настройках). - Выделите строки, которые надо убрать.
- Удалите их командой удаления в командной панели списка.
Команду Все функции включают в Главное меню → Сервис → Параметры → Отображать команду «Все функции». Через неё открывается список любого регистра, даже если на него нет пункта в интерфейсе.
Подчинённый регистратору регистр сведений вручную не чистят через форму — записи защищены документом. Их убирают тем же путём, что и накопления: отменой проведения или перепроведением документа-регистратора.
Опасность: если удалить записи подчинённого регистра в обход документа, документ останется проведённым, а движений не будет. Отчёты начнут показывать расхождения. При следующем перепроведении движения вернутся — и «очистка» окажется напрасной.
Программная очистка набором записей
Когда записей тысячи и отбор сложный, помогает внешняя обработка на встроенном языке. Ключевой приём — набор записей: если записать пустой набор по отбору, платформа удалит все попадающие под отбор движения корректно, вместе с пересчётом.
Удалить движения конкретного документа из регистра накопления:
НаборЗаписей = РегистрыНакопления.ТоварыНаСкладах.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(СсылкаНаДокумент);
НаборЗаписей.Записать(); // пустой набор перезаписывает выборку, то есть удаляет движения
Очистить независимый регистр сведений по значению измерения:
НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Номенклатура.Установить(СсылкаНаТовар);
НаборЗаписей.Записать();
Метод Записать() без добавления строк в набор и с установленным отбором — это и есть корректное удаление: платформа сама снимет старые записи и обновит итоги.
Запускайте обработку в монопольном режиме или в заведомо свободное время. Массовая запись наборов в рабочей базе под нагрузкой приводит к блокировкам и ошибкам у пользователей.
Для разовой массовой задачи такую обработку удобнее отладить и запустить из Конфигуратора
или как внешнюю обработку
(*.epf), не меняя саму конфигурацию.
Документ «Корректировка регистров»: правим движения руками
Когда ищут, как «почистить регистр вручную», часто имеют в виду именно этот инструмент. В типовых конфигурациях есть документ, который разрешает руками редактировать и удалять движения регистров, не трогая исходные документы.
В «Бухгалтерии предприятия» 3.0 он открывается так:
- Зайдите в
Операции → Операции, введённые вручную. - Нажмите
Создатьи выберите видКорректировка регистров. - По кнопке настройки состава (значок настройки в шапке документа) отметьте галочками регистры, которые нужно поправить.
- На появившихся закладках добавьте, измените или удалите строки движений и запишите документ.
Так можно, например, убрать «зависшие» остатки в регистре накопления или снять лишнюю запись регистра сведений без отмены проведения исходного документа.
Корректировка живёт отдельной записью. Если потом перепровести документ-регистратор, его движения вернутся, а ваша корректировка останется — получится двойной эффект. Применяйте корректировку, когда исходный документ перепроводить не планируете.
Для разовой точечной правки это самый прозрачный способ: видно, что именно вы меняете, и всё остаётся внутри учётной логики 1С.
Пересчёт итогов и восстановление после неудачной очистки
Регистры накопления и бухгалтерии хранят не только записи, но и итоги — предрассчитанные остатки и обороты. После массовых отмен проведения или программной чистки итоги могут «отстать» от реальных движений, и отчёты начнут врать при верных записях.
Исправляется это пересчётом итогов, а не новой чисткой:
- Закройте базу для пользователей.
- Откройте базу в Конфигураторе:
Администрирование → Тестирование и исправление. - Включите флаг пересчёта итогов регистров, при необходимости — реструктуризацию.
- Запустите и дождитесь завершения.
Тестирование и исправление требует монопольного доступа — все сеансы оборвутся. Это нормально для такой операции, но запускать её надо вне рабочего дня и обязательно на копии, если не уверены в результате.
Если очистка пошла не так (удалили лишнее, остатки развалились):
- Восстановите базу из резервной копии, сделанной до операции, — это самый надёжный путь.
- Если копии нет, но документы целы — перепроведите документы за период: движения пересоберутся из текущих данных.
- После восстановления движений сделайте пересчёт итогов, чтобы отчёты сошлись.
Прямое «латание» таблиц на уровне СУБД в качестве восстановления не используйте: без копии и без документов надёжно восстановить логическую целостность всё равно не выйдет.