Чистая база 1С 8.3: удаляем документы, движения, справочники и лишний журнал
Содержание
Очистить 1С от данных штатно можно в два хода: сначала пометить документы и справочники на удаление, затем запустить Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов. Проведённый документ при установке пометки сам отменяет проведение, поэтому его движения по регистрам уходят вместе с ним. Если нужно убрать старые годы, но сохранить остатки, в 1С:Бухгалтерии 3.0 для этого есть свертка информационной базы.
Типичная ситуация: база весит 40 ГБ, в ней девять лет учёта, а работать нужно только с последними двумя. Или главбух просит «копию без документов» для обучения новичка. Задачи разные, и способ под каждую свой. Всё ниже относится к платформе 8.3 и конфигурациям на БСП: БП 3.0, ЗУП 3.1, УТ 11.
Подготовка: резервная копия и выбор способа очистки
Удаление данных
в 1С необратимо. Откатить его можно только из копии, поэтому перед любой очисткой выгрузите базу в .dt или сделайте копию средствами СУБД. Для файловой базы достаточно скопировать каталог с файлом 1Cv8.1CD, когда в базе никто не работает
.
Второй шаг — понять, что именно вы хотите получить на выходе:
- 🗂️ Убрать мусор: ошибочные документы, дубли контрагентов, тестовые элементы.
- 📅 Отрезать старые периоды и начать базу с остатков на дату.
- 🧹 Пустая база со справочниками: номенклатура, контрагенты, сотрудники есть, документов нет.
- 💾 Уменьшить размер файла без потери учётных данных.
Удаление документов и их движений штатными средствами
Пометка и удаление помеченных
- Откройте журнал документов
, например
Продажи → Реализация (акты, накладные, УПД). - Отберите нужные строки: по периоду, контрагенту или организации. Выделите их через
ShiftилиCtrl+A. - Нажмите
Delили выберите пометку удаления в менюЕщё. Строки получат значок с крестом. - Перейдите в
Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов. - Выберите выборочное удаление, отметьте объекты и запустите.
Программа проверяет ссылки. Если на документ ссылается другой документ (счёт-фактура на реализацию, оплата на счёт), он не удалится, а попадёт в список «не удалены» с указанием, кто на него ссылается. Удалите или перепривяжите эти объекты и повторите запуск.
Удаление большого объёма — тысяч и десятков тысяч объектов — идёт долго и блокирует записи. Запускайте его вечером или в выходные, когда пользователи не вводят документы.
Отмена проведения без удаления
Иногда нужно убрать только движения, а сам документ оставить: например, чтобы заново провести период в правильном порядке. Для этого в списке выделите документы и выберите отмену проведения в меню Ещё. Документ остаётся, записи в регистрах бухгалтерии и накопления удаляются.
После исправлений движения восстанавливают групповым перепроведением: Операции → Закрытие периода → Групповое перепроведение документов в БП 3.0.
Закрытый период защищён датой запрета изменения. Пока она стоит, пометить и отменить проведение документов этого периода не выйдет. Снимите её в Администрирование → Настройки пользователей и прав → Даты запрета изменения, а после очистки поставьте обратно.
Как очистить базу 1С полностью и удалить справочники
Порядок удаления
Справочник нельзя удалить, пока на него ссылаются. Контрагент «живёт», пока есть хоть одна реализация, договор или запись в регистре сведений с его ссылкой. Отсюда жёсткий порядок:
- Документы всех видов.
- Записи независимых регистров сведений, где встречаются элементы справочников (цены, курсы, контактные данные).
- Подчинённые справочники: договоры, банковские счета, контактные лица.
- Основные справочники: контрагенты, номенклатура, физические лица.
Всё, что останется после удаления помеченных, — это объекты со ссылками. Список «не удалены» подскажет, кто держит каждый из них.
Что удалить нельзя
- 🔒 Предопределённые элементы: основной склад, виды операций, предопределённые счета плана счетов. Конфигурация создаёт их сама и опирается на них в коде.
- 🏢 Организация, на которую завязаны учётная политика и регламентированные отчёты, — удалится только после всех её документов.
- 👤 Пользователи — их удаляют отдельно, через
Администрирование → Настройки пользователей и прав → Пользователи, и проверяют, что останется хотя бы один с полными правами.
Когда проще не удалять, а собрать новую базу
Если задача — «только справочники, без документов», выгоднее не чистить старую базу. Создайте новую из шаблона той же конфигурации и того же релиза, а затем перенесите справочники обработкой «Выгрузка и загрузка данных XML». Она берётся с диска ИТС для вашей версии платформы и открывается через Файл → Открыть.
Плюсы такого пути: нет хвостов от удалённых документов, нет «раздутых» таблиц, база сразу компактная. Минус — настройки программы и учётную политику придётся заполнить заново или перенести той же обработкой.
Свертка базы и управление итогами
Свертка информационной базы в БП 3.0
Свертка убирает документы до выбранной даты и формирует вместо них документы с остатками на эту дату. Учёт после даты свертки продолжает сходиться: ОСВ на начало периода та же, что была.
Где найти: Администрирование → Обслуживание → Корректировка данных → Свертка информационной базы.
Перед запуском:
- Закройте месяцы до даты свертки обработкой «Закрытие месяца », иначе в остатки уйдут незакрытые затраты.
- Сформируйте ОСВ на дату свертки и сохраните её в файл — это эталон для проверки.
- Выполняйте свертку на копии базы. Только убедившись, что ОСВ совпала, повторяйте в рабочей или просто переключитесь на свёрнутую копию.
Свертка необратима. Документы за свёрнутый период исчезают, отчёт по ним можно будет получить только из архивной копии. Сохраните её отдельно и подпишите датой.
Свертка годится для старых закрытых периодов, по которым сданы отчёты и прошли проверки. Срок хранения первичных документов и учётных данных не меньше пяти лет (ст. 29 закона № 402-ФЗ), поэтому архивная копия должна быть доступна всё это время.
Управление итогами
Иногда под «сверткой итогов» понимают другое — ускорение отчётов без удаления данных. Для этого в платформе есть Все функции → Стандартные → Управление итогами. Там задают период рассчитанных итогов: платформа хранит итоги регистров только до этой даты, и отчёты по текущему периоду считаются быстрее.
Данные при этом не удаляются. Если отчёты стали медленными, но база ещё нужна целиком, начните с управления итогами и пересчёта итогов, а свертку оставьте на потом.
Очистка журнала регистрации и служебных данных
Журнал регистрации пишет каждый вход, запись объекта и ошибку. За несколько лет он вырастает до гигабайтов и занимает места больше, чем сами документы.
Как сократить журнал
- Откройте конфигуратор:
Администрирование → Журнал регистрации. - В меню окна журнала выберите сокращение журнала.
- Укажите дату: всё, что раньше, будет удалено. Отметьте сохранение удаляемых записей в файл, если нужен архив.
Чтобы журнал не рос снова, в конфигураторе откройте Администрирование → Настройка журнала регистрации. Там выбирают уровень событий (ошибки, предупреждения, информация, примечания) и разделение журнала по периодам — тогда старые периоды лежат отдельными файлами в каталоге 1Cv8Log и их проще архивировать.
Журнал — главный инструмент разбора «кто удалил документ». Не уменьшайте уровень до «не регистрировать» и храните архив хотя бы за год.
Другие служебные данные
- 📝 Версии объектов: если включено версионирование, история изменений лежит в базе. Устаревшие версии удаляются в
Администрирование → Общие настройкив блоке истории изменений. - 📎 Присоединённые файлы: сканы и вложения могут храниться прямо в базе. Перенос в тома на диске уменьшает её размер.
- 🧾 Кеш клиента хранится на компьютере пользователя, а не в базе. Его очищают параметром запуска
/ClearCache, на размер базы это не влияет.
Обработки и код для массового удаления
Когда документов сотни тысяч, ручная пометка через список занимает часы. Помогает внешняя обработка, которая сама ставит пометки по условию.
Пример: пометить на удаление все документы всех видов с датой раньше границы. Код ставится в модуль формы внешней обработки и выполняется на сервере.
&НаСервереБезКонтекста
Процедура ПометитьДокументыНаСервере(ДатаГраницы)
Для Каждого МетаДок Из Метаданные.Документы Цикл
Запрос = Новый Запрос;
Запрос.Текст = СтрШаблон(
"ВЫБРАТЬ Д.Ссылка КАК Ссылка
|ИЗ Документ.%1 КАК Д
|ГДЕ Д.Дата < &Граница И НЕ Д.ПометкаУдаления", МетаДок.Имя);
Запрос.УстановитьПараметр("Граница", ДатаГраницы);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ДокОбъект = Выборка.Ссылка.ПолучитьОбъект();
Попытка
ДокОбъект.УстановитьПометкуУдаления(Истина);
Исключение
Сообщить(СтрШаблон("%1: %2", Выборка.Ссылка,
КраткоеПредставлениеОшибки(ИнформацияОбОшибке())));
КонецПопытки;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Пометка проведённого документа отменяет его проведение, поэтому движения удаляются автоматически. Ошибки — например, из-за даты запрета — выводятся сообщениями и не останавливают обработку. Дальше работает обычное удаление помеченных с проверкой ссылок.
Непосредственное удаление
В коде можно удалить объект сразу, минуя пометку:
ДокОбъект.ОбменДанными.Загрузка = Истина;
ДокОбъект.Удалить();
Это в разы быстрее, но ссылки не проверяются. Если на удалённый документ кто-то ссылался, в формах появится <Объект не найден> с кодом ссылки. Используйте непосредственное удаление только на копии и только когда удаляете всё связанное целиком — например, все документы до даты, без исключений.
Очистка независимого регистра сведений
Записанный пустой набор без отбора стирает весь регистр. Пример для курсов валют:
Набор = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
Набор.Записать();
Для частичной очистки перед записью установите отбор по измерению, например Набор.Отбор.Валюта.Установить(СсылкаНаВалюту).
Не удаляйте строки напрямую в таблицах SQL или PostgreSQL. Платформа хранит связи и итоги в нескольких таблицах сразу, и прямой DELETE оставляет базу в несогласованном состоянии, которое потом не всегда лечится тестированием.
Что сделать с базой после очистки
Удалённые записи освобождают место внутри базы, но сам файл или база СУБД сами не уменьшаются. Размер 1Cv8.1CD после удаления 70% документов останется прежним, пока вы его не сожмёте.
| Тип базы | Чем уменьшить размер | Когда выполнять |
|---|---|---|
| Файловая | Конфигуратор → Администрирование → Тестирование и исправление, флажок сжатия таблиц | Без пользователей, нужен монопольный доступ |
| MS SQL Server | Перестроение индексов и сжатие базы планом обслуживания | В технологическое окно |
| PostgreSQL | VACUUM FULL и ANALYZE по базе | В технологическое окно, таблицы блокируются |
После сжатия:
- Выполните пересчёт итогов: в том же окне тестирования и исправления или через управление итогами.
- Сформируйте ОСВ и сверьте её с эталоном, сохранённым до очистки.
- Проверьте, что открываются ключевые справочники и нет ссылок
<Объект не найден>. - Сделайте новую резервную копию уже очищенной базы.
Тестирование и исправление файловой базы и обслуживание в СУБД требуют, чтобы пользователи вышли. Предупредите их заранее: открытые сеансы оборвутся или не дадут запустить проверку.
Чтобы база не разрасталась снова, включите регламентное удаление помеченных объектов и разделение журнала регистрации по периодам. Раз в квартал полезно смотреть, какие таблицы растут быстрее всего: в файловой базе — по размеру после сжатия, в серверной — отчётом СУБД о размере таблиц.