Администрирование · 10 мин
Как почистить регистр в 1С: инструкция по безопасной очистке
Как почистить регистр 1С: сведений, накопления и расчёта. Пошаговые способы через обработки, запросы и типовые механизмы, риски и проверка результата.
Регистры в 1С — это таблицы, где хранятся движения документов, периодические сведения и итоги. Со временем в них накапливаются лишние записи: остатки по закрытым периодам, устаревшие курсы валют, записи тестовых документов. Из-за этого база растёт в объёме, отчёты формируются медленнее, а свёртка итогов занимает часы. Очистка регистра — рабочий инструмент администратора, но только при понимании того, какие данные удаляются и на что это повлияет.
Прямого способа «очистить регистр» из пользовательского интерфейса у большинства типовых конфигураций нет: записи регистров подчинены документам-регистраторам и удаляются вместе с ними. Поэтому задача решается либо штатными механизмами (удаление документов, свёртка базы), либо программно — через обработки и запросы. Выбор зависит от типа регистра и от того, нужно ли сохранять остатки.
Главное правило перед любыми манипуляциями: сделайте полную резервную копию информационной базы и проверьте её восстановление на тестовой копии. Удаление записей регистра необратимо, а восстановить отдельную таблицу из рабочей базы без бэкапа практически невозможно.
Что такое регистр в 1С и когда его нужно чистить
В 1С существует четыре вида регистров: сведений, накопления, бухгалтерии и расчёта. Регистры сведений хранят независимые данные (курсы валют, адреса, настройки), регистры накопления — обороты и остатки (товары на складах, взаиморасчёты), регистры бухгалтерии — проводки, регистры расчёта — начисления и удержания. Подход к очистке у них разный: независимый регистр сведений можно чистить напрямую, а регистр накопления, подчинённый регистратору, — только через документы или специальную обработку.
Типичные ситуации, когда очистка оправдана: база раздулась из-за исторических данных за закрытые периоды, тестовые документы засорили движения, регистр сведений заполнен устаревшими значениями, после ошибочной загрузки появились тысячи лишних записей. Неоправданная причина — «почистить на всякий случай»: если записи участвуют в отчётности или расчёте остатков, их удаление приведёт к расхождениям.
Подготовка: резервная копия и анализ состава регистра
Перед очисткой выгрузите базу через конфигуратор («Администрирование» → «Выгрузить информационную базу») или средствами СУБД, если работаете в клиент-серверном варианте. Проверьте, что копия разворачивается: загрузите её в отдельную базу и убедитесь, что она открывается и отчёты строятся. Все дальнейшие действия сначала выполните на этой копии.
Далее определите, какие записи реально нужно удалить. Откройте регистр через «Все функции» или консоль запросов и посмотрите состав: сколько записей, за какой период, по каким измерениям идёт основной объём. Часто выясняется, что чистить нужно не весь регистр, а записи по конкретной организации, складу или периоду — это существенно снижает риски.
Способ 1. Очистка через удаление документов-регистраторов
Самый безопасный метод для подчинённых регистров — удалить или отменить проведение документов, которые создали записи. В типовых конфигурациях есть обработка «Удаление помеченных объектов» («Администрирование» → «Обслуживание»): пометьте ненужные документы на удаление, затем запустите обработку в монопольном режиме. Записи регистров удалятся вместе с документами автоматически.
Ограничение способа — ссылочная целостность: если на документ ссылаются другие объекты, удаление будет заблокировано. Также массовое удаление документов за закрытые периоды может потребовать снятия даты запрета редактирования, что нужно согласовать с бухгалтерией.
- 1Сделайте резервную копию и разверните тестовую базу
- 2Пометьте ненужные документы на удаление
- 3Запустите «Удаление помеченных объектов» в монопольном режиме
- 4Проверьте остатки и отчёты за затронутые периоды
Способ 2. Свёртка базы для регистров накопления
Свёртка — штатный механизм очистки старых движений с сохранением остатков. В типовых конфигурациях есть обработка «Свёртка информационной базы»: она формирует документы ввода начальных остатков на дату свёртки и помечает на удаление все документы раньше этой даты. В результате регистры накопления очищаются от истории, но остатки на дату свёртки сохраняются.
Свёртка — длительная операция, на больших базах она идёт часами и требует монопольного доступа. Заранее проверьте корректность остатков: если в учёте есть ошибки (отрицательные остатки, незакрытые взаиморасчёты), свёртка «заморозит» их во вводе остатков, и разбираться с ними станет сложнее.
Способ 3. Программная очистка регистра сведений
Независимые регистры сведений можно чистить напрямую через встроенный язык. Для полной очистки достаточно создать набор записей и записать его пустым:
НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
НаборЗаписей.Записать(); // очищает весь регистр
Для частичной очистки установите отбор по измерениям или периоду: например, удалить курсы старше определённой даты. Удобнее всего выполнять такой код через консоль кода или внешнюю обработку на тестовой базе, а затем — на рабочей в монопольном режиме. Для подчинённых регистратору регистров сведений набор записей создаётся с отбором по регистратору.
Способ 4. Групповая обработка и типовые инструменты
Во многих конфигурациях на БСП есть «Групповое изменение реквизитов», а в поставках для разработчиков — универсальные обработки поиска и удаления данных. С их помощью можно отобрать записи независимого регистра сведений по условию и удалить их без написания кода. Это удобно для разовых задач вроде очистки устаревших настроек или ошибочно загруженных данных.
Отдельный случай — регистры, заполняемые обменами: например, регистры очередей обмена данными или результатов обмена с сайтом. Их очистка обычно безопасна и даже рекомендуется, так как такие таблицы растут быстрее всего. Ищите штатные команды очистки в настройках соответствующего обмена.
Сравнение способов
Безопасно и прозрачно, но медленно и требует снятия даты запрета для старых периодов
Сохраняет остатки и очищает историю, но долго выполняется и фиксирует текущие ошибки учёта
Быстро и гибко, но требует навыков и не восстанавливает остатки — подходит для регистров сведений
Удобно для разовых задач без кода, но ограничено возможностями конкретной обработки
Проверка результата и типичные ошибки
После очистки откройте регистр и убедитесь, что удалены именно те записи, которые планировались. Сформируйте ключевые отчёты за затронутые периоды: оборотно-сальдовую ведомость, остатки товаров, взаиморасчёты. Если чистился регистр накопления, сравните остатки до и после — они должны совпадать (при свёртке) или измениться предсказуемо (при удалении документов).
Полезно также выполнить тестирование и исправление базы после массовых удалений: физическое удаление записей оставляет «пустоты» в таблицах, и реиндексация улучшит производительность. В файловом варианте дополнительно можно выполнить сжатие базы через конфигуратор.
Как проверить результат
Остались только нужные записи, отборы работают корректно
Удалено больше, чем планировалось, или лишние записи остались
Остатки совпадают с данными до очистки или изменились ожидаемо
Нулевые остатки, расхождения с бухгалтерией
Обмены, расчёты и проведение документов работают
Ошибки при проведении или обмене, ссылающиеся на регистр
Часто задаваемые вопросы
Можно ли очистить регистр накопления без удаления документов?
Технически да — программно, через наборы записей с отбором по регистраторам. Но при этом остатки и обороты перестанут соответствовать документам, и отчёты покажут расхождения. Корректная альтернатива — свёртка базы, которая сохраняет остатки через документы ввода остатков.
Как очистить регистр сведений только за определённый период?
Для периодического регистра сведений создайте набор записей, установите отбор по периоду или выберите записи запросом с условием на дату, затем удалите их в цикле или запишите пустой набор с нужным отбором. Предварительно проверьте выборку запросом, чтобы убедиться, что условие отбирает именно нужные записи.
Что делать, если после очистки отчёты показывают нулевые остатки?
Это признак того, что удалены записи, формировавшие остатки. Восстановите базу из резервной копии и повторите процедуру корректно: через свёртку с вводом остатков или через удаление документов с последующим перепроведением оставшихся. Работать дальше с нулевыми остатками нельзя — ошибки накапливаются.
Нужен ли монопольный режим для очистки регистра?
Для массовых операций — желательно: удаление помеченных объектов и свёртка требуют монопольного доступа. Программная очистка небольшого числа записей возможна и без него, но при активной работе пользователей возрастает риск блокировок и конфликтов транзакций.
Уменьшится ли размер базы после очистки регистра?
Логически данные удалятся сразу, но физический размер файла может не измениться. В файловом варианте выполните тестирование и исправление со сжатием таблиц, в клиент-серверном — шринк базы средствами СУБД, если это регламентировано вашей инфраструктурой.
Какие регистры можно чистить без особых опасений?
Относительно безопасны служебные регистры: очереди обменов, результаты обмена данными, кэши, протоколы и истории версий, если они не используются для аудита. Даже в этом случае перед очисткой убедитесь, что данные не нужны для расследования инцидентов или повторной отправки сообщений обмена.
Что важно запомнить
Очищайте регистры осознанно: документы-регистраторы — через удаление, историю остатков — через свёртку, регистры сведений — программно с отбором. Всегда начинайте с резервной копии и тестовой базы, а завершайте проверкой остатков и отчётов.