Очистка информационной базы 1С от документов и справочников без потери конфигурации
Содержание
Самый надёжный способ сделать базу 1С чистой — не удалять данные
, а создать новую пустую базу с той же конфигурацией. В Конфигураторе рабочей базы выполните Конфигурация → Сохранить конфигурацию в файл, создайте новую информационную базу без конфигурации и загрузите в неё полученный .cf через Конфигурация → Загрузить конфигурацию из файла. Доработки сохранятся, а данных не будет ни одного.
Удаление данных внутри существующей базы нужно, когда в ней есть настройки, которые жалко терять: пользователи и права, справочники, учётная политика, настройки обмена. Тогда документы удаляют, справочники оставляют, а потом запускают тестирование и исправление, чтобы база была целостной. Всё описанное относится к платформе 8.3 и типовым конфигурациям на ней: Бухгалтерии 3.0, ЗУП 3.1, УТ 11.
Подготовка: копия базы и выбор способа очистки
Удаление в 1С необратимо. Корзины нет, отменить физическое удаление нельзя.
Перед любой очисткой сделайте выгрузку базы в файл .dt и проверьте, что файл открывается.
Выгрузка делается в Конфигураторе: Администрирование → Выгрузить информационную базу. Для файловой базы дополнительно можно скопировать каталог целиком, предварительно закрыв все сеансы.
Дальше выберите способ. Он зависит от того, что должно остаться в базе.
| Что нужно получить | Способ | Риски |
|---|---|---|
| Пустую базу с той же конфигурацией | Новая база + загрузка .cf | Пользователей и настройки придётся заводить заново |
| Базу без документов, но со справочниками | Пометка на удаление + удаление помеченных | Долго на больших базах, мешают ссылки |
| Базу без документов за старые годы | Свёртка базы (если есть в конфигурации) | Нужна сверка остатков после свёртки |
| Полностью пустую базу на сервере | Очистка базы данных через консоль кластера | Удаляет всё, включая конфигурацию |
| Быстрое удаление по всем документам | Внешняя обработка | Обход проверок, риск «висячих» ссылок |
Удаление документов и их движений в пользовательском режиме
Это штатный путь для типовых конфигураций. Он медленный, но безопасный: программа проверяет ссылки и не даст удалить то, на что что-то ссылается.
Шаг 1. Откройте список всех документов
- Включите полный интерфейс:
Главное меню → Сервис → Параметры, флажок «Отображать команду “Все функции”». - Откройте
Главное меню → Все функции → Документы. - Выберите вид документа, например «Реализация (акт, накладная, УПД)».
Шаг 2. Пометьте документы на удаление
- В списке нажмите
Ctrl+A, чтобы выделить все строки. - Нажмите
Delи подтвердите пометку. - Повторите для каждого вида документов.
У проведённого документа пометка на удаление сразу отменяет проведение. Его движения в регистрах исчезают уже на этом шаге, даже если сам документ ещё не удалён физически.
Начинайте с документов, которые стоят в конце цепочки: платежи, реализации, возвраты. Потом поступления, затем ввод остатков. Так меньше ссылок блокирует удаление.
Шаг 3. Удалите помеченные объекты
В Бухгалтерии 3.0 и других конфигурациях на БСП обработка открывается так: Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов.
Обработка показывает два списка: что удалено и что не удалось удалить из-за ссылок. Для каждого неудалённого объекта видно, кто на него ссылается. Обычно это другой документ, который тоже нужно пометить, или регистр сведений .
Повторите запуск, пока список «не удалено» не опустеет или не останутся только объекты, которые вы удалять не планировали.
Что останется после удаления документов
- 📁 Справочники: контрагенты, номенклатура, сотрудники, договоры.
- ⚙️ Константы и учётная политика.
- 📊 Независимые регистры сведений: курсы валют, цены номенклатуры, введённые вручную настройки.
- 👤 Пользователи информационной базы и их права.
Если справочники тоже не нужны, удаляйте их той же схемой после документов. Предопределённые элементы (например, основная валюта или базовые виды цен) программа удалить не даст, и это нормально.
Полная очистка серверной базы через консоль кластера
Для клиент-серверной базы есть радикальный способ: удалить информационную базу из кластера с очисткой данных на стороне СУБД.
- Откройте «Администрирование серверов 1С Предприятия».
- Разверните кластер, затем «Информационные базы».
- Правой кнопкой по базе выберите удаление.
- В диалоге выберите режим: оставить базу данных без изменений, очистить базу данных или удалить базу данных.
Режим «Очистить базу данных» стирает таблицы в СУБД, но оставляет саму базу на сервере SQL или PostgreSQL. После этого заново регистрируете информационную базу в кластере на эту же базу данных и загружаете в неё .cf или .dt.
Вместе с данными удаляется и конфигурация, и все пользователи. Перед удалением завершите сеансы и предупредите людей: все, кто работает в базе, будут отключены. Делайте это вне рабочего времени.
Если консоль не открывается, одна из частых причин — незарегистрированная библиотека radmin.dll той версии платформы, что установлена на сервере. Её регистрируют командой от администратора:
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"
Номер версии в пути подставьте свой, он должен совпадать с версией сервера.
Почему файл 1Cv8.1CD не уменьшается после удаления данных
Частая ситуация в файловой базе: удалили 80% документов, а файл 1Cv8.1CD весит столько же. Платформа не возвращает освобождённое место автоматически. Удалённые записи остаются пустыми страницами внутри файла.
Освободить место можно двумя способами.
Сжатие таблиц при тестировании
- Закройте все сеансы базы.
- Запустите Конфигуратор:
Администрирование → Тестирование и исправление. - Отметьте «Сжатие таблиц информационной базы».
- Нажмите «Выполнить».
Этот флажок действует только для файловых баз. В серверной базе за размер отвечает СУБД, и сжимать нужно её средствами.
Перевыгрузка через .dt
Выгрузите базу в .dt и загрузите обратно в новый каталог. Новая база собирается с нуля и не содержит пустых страниц. На базах в десятки гигабайт это часто быстрее сжатия.
Сброс нумерации документов и справочников
Отдельного счётчика номеров в 1С нет. При записи нового объекта платформа ищет максимальный номер в пределах периода и префикса и берёт следующий.
Отсюда практические выводы:
- ✅ Физически удалили все документы вида за год — новый документ получит номер с единицей.
- ❌ Документы только помечены на удаление — они занимают номера, нумерация продолжится.
- 📅 У большинства документов периодичность номера — год. С 1 января нумерация начинается заново без всяких действий.
Если номер нужно поправить вручную
В форме документа поле номера по умолчанию защищено от правки. При попытке изменить его программа предупредит, что нумерация станет ручной; подтвердите и введите нужное значение. После этого следующий документ продолжит нумерацию от введённого номера.
Префиксы в номерах
В типовых конфигурациях номер состоит из префикса информационной базы, префикса организации и порядкового номера. Префикс организации задают в её карточке. Если после очистки номера выглядят как БП00-000001, а нужны 0000-000001, проверьте префиксы — с нумерацией всё в порядке.
Выгрузка и загрузка данных через .dt
Файл .dt — это полный слепок базы: конфигурация, данные, пользователи. В контексте очистки он нужен трижды.
- Страховка. Выгрузка до начала очистки.
- Чистая копия. Загрузка в новую базу, чтобы чистить копию, а не рабочую.
- Уплотнение. Перевыгрузка после удаления, чтобы убрать пустые страницы.
Команды в Конфигураторе:
Администрирование → Выгрузить информационную базу— сохранить.dt;Администрирование → Загрузить информационную базу— заменить содержимое текущей базы данными из.dt.
Загрузка .dt полностью заменяет базу, в которую грузите. Перепутали окна и загрузили в рабочую — рабочих данных больше нет. Перед загрузкой посмотрите путь к базе в заголовке Конфигуратора.
Выгрузку можно запустить из командной строки без открытия Конфигуратора. Это удобно для ночных заданий:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "пароль" /DumpIB "D:\Backup\buh.dt" /Out "D:\Backup\dump.log"
Загрузка — тот же вызов с ключом /RestoreIB вместо /DumpIB.
Новую пустую базу из файла конфигурации тоже можно создать одной командой:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" CREATEINFOBASE File="D:\Bases\Clean" /UseTemplate "D:\Backup\buh.cf"
Удаление данных внешней обработкой
Когда документов сотни тысяч, пометка и удаление помеченных идут часами. Для тестовых и учебных копий удаление пишут внешней обработкой. В Конфигураторе: Файл → Новый → Внешняя обработка, добавьте форму и команду, в модуле формы разместите код:
&НаСервере
Процедура УдалитьВсеДокументыНаСервере()
Для Каждого МетаДокумент Из Метаданные.Документы Цикл
Выборка = Документы[МетаДокумент.Имя].Выбрать();
Пока Выборка.Следующий() Цикл
Объект = Выборка.ПолучитьОбъект();
Объект.ОбменДанными.Загрузка = Истина;
Объект.Удалить();
КонецЦикла;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура УдалитьВсеДокументы(Команда)
УдалитьВсеДокументыНаСервере();
Сообщить("Удаление документов завершено");
КонецПроцедуры
Что делает код:
- перебирает все виды документов из метаданных конфигурации;
- для каждого документа отключает обработчики через
ОбменДанными.Загрузка; - удаляет документ физически, вместе с подчинёнными ему записями регистров.
Метод Удалить() не проверяет ссылки. Если на документ ссылается другой объект, ссылка станет битой. Поэтому после такой обработки обязательно запускайте тестирование с проверкой ссылочной целостности.
Запускайте обработку только в копии базы. На рабочей базе это уничтожит учёт без возможности восстановить его средствами 1С. Обработке нужны права администратора, а во время работы все пользователи должны быть отключены, иначе она упрётся в блокировки.
Чтобы удалить только старые документы, добавьте отбор по дате: замените Выбрать() на Выбрать(, ДатаОкончания), где ДатаОкончания — последняя секунда периода, который нужно стереть.
Свёртка вместо ручного удаления
Если цель — убрать старые годы и сохранить остатки, поищите обработку свёртки: Все функции → Обработки, отбор по слову «свёртка». Она удаляет документы до выбранной даты и сама создаёт документы с остатками на эту дату. Это безопаснее самописной обработки, но после неё всё равно сверьте оборотно-сальдовую ведомость на дату свёртки.
Тестирование базы после очистки
После массового удаления базу нужно проверить. Иначе битые ссылки и неверные итоги всплывут позже, в отчётах.
Через Конфигуратор
Администрирование → Тестирование и исправление. Нужен монопольный режим: перед запуском отключите всех пользователей.
Для ссылок на несуществующие объекты выберите действие:
| Вариант | Когда выбирать |
|---|---|
| Создавать объекты | Удалили лишнее по ошибке и хотите увидеть, что пропало |
| Очищать ссылки | Удаляли намеренно, битые ссылки не нужны |
| Не изменять | Только посмотреть масштаб, ничего не трогая |
Сначала запустите режим «Тестирование» без исправления. Он покажет, сколько проблем нашлось. Если список огромный, лучше вернуться к копии и удалить данные аккуратнее.
Из командной строки
Тот же набор проверок запускается без интерфейса:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Clean" /N "Администратор" /P "пароль" /IBCheckAndRepair -ReIndex -LogAndRefsIntegrity -RecalcTotals -IBCompression -BadRefClear /Out "D:\Backup\check.log"
Для серверной базы уберите -IBCompression и замените /F "путь" на /S "сервер\имя_базы".
Проверка в пользовательском режиме
Откройте базу и сформируйте оборотно-сальдовую ведомость за весь период. Если документы удалены полностью, обороты должны быть нулевыми. Ненулевые обороты означают, что остались документы или движения, не попавшие под удаление, например ручные операции.
Что чаще всего идёт не так
- 🔁 Ждут сброса нумерации, но документы только помечены. Номера занимают и помеченные объекты, пока их не удалили физически.
- 🧾 Удаляют справочники раньше документов. Каждый контрагент, на которого ссылается документ, попадёт в список «не удалено».
- 💾 Не делают сжатие после удаления в файловой базе. Размер файла остаётся прежним, хотя данных стало меньше.
- 🔒 Запускают тестирование при работающих пользователях. Конфигуратор не получит монопольный доступ и не начнёт проверку.
- 🌐 Чистят базу, связанную обменом. Удаление регистрируется к выгрузке, и при следующей синхронизации может удалить данные во второй базе. Отключите синхронизацию до очистки.