Чистая база 1С 8.3: удаляем документы, движения, справочники и лишний журнал

· 9 мин

Содержание

Очистить 1С от данных штатно можно в два хода: сначала пометить документы и справочники на удаление, затем запустить Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов. Проведённый документ при установке пометки сам отменяет проведение, поэтому его движения по регистрам уходят вместе с ним. Если нужно убрать старые годы, но сохранить остатки, в 1С:Бухгалтерии 3.0 для этого есть свертка информационной базы.

Типичная ситуация: база весит 40 ГБ, в ней девять лет учёта, а работать нужно только с последними двумя. Или главбух просит «копию без документов» для обучения новичка. Задачи разные, и способ под каждую свой. Всё ниже относится к платформе 8.3 и конфигурациям на БСП: БП 3.0, ЗУП 3.1, УТ 11.

Подготовка: резервная копия и выбор способа очистки

Удаление данных в 1С необратимо. Откатить его можно только из копии, поэтому перед любой очисткой выгрузите базу в .dt или сделайте копию средствами СУБД. Для файловой базы достаточно скопировать каталог с файлом 1Cv8.1CD, когда в базе никто не работает .

Второй шаг — понять, что именно вы хотите получить на выходе:

  • 🗂️ Убрать мусор: ошибочные документы, дубли контрагентов, тестовые элементы.
  • 📅 Отрезать старые периоды и начать базу с остатков на дату.
  • 🧹 Пустая база со справочниками: номенклатура, контрагенты, сотрудники есть, документов нет.
  • 💾 Уменьшить размер файла без потери учётных данных.
Какой результат вам нужен?

Удаление документов и их движений штатными средствами

Пометка и удаление помеченных

  1. Откройте журнал документов , например Продажи → Реализация (акты, накладные, УПД).
  2. Отберите нужные строки: по периоду, контрагенту или организации. Выделите их через Shift или Ctrl+A.
  3. Нажмите Del или выберите пометку удаления в меню Ещё. Строки получат значок с крестом.
  4. Перейдите в Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов.
  5. Выберите выборочное удаление, отметьте объекты и запустите.

Программа проверяет ссылки. Если на документ ссылается другой документ (счёт-фактура на реализацию, оплата на счёт), он не удалится, а попадёт в список «не удалены» с указанием, кто на него ссылается. Удалите или перепривяжите эти объекты и повторите запуск.

Удаление большого объёма — тысяч и десятков тысяч объектов — идёт долго и блокирует записи. Запускайте его вечером или в выходные, когда пользователи не вводят документы.

Отмена проведения без удаления

Иногда нужно убрать только движения, а сам документ оставить: например, чтобы заново провести период в правильном порядке. Для этого в списке выделите документы и выберите отмену проведения в меню Ещё. Документ остаётся, записи в регистрах бухгалтерии и накопления удаляются.

После исправлений движения восстанавливают групповым перепроведением: Операции → Закрытие периода → Групповое перепроведение документов в БП 3.0.

Закрытый период защищён датой запрета изменения. Пока она стоит, пометить и отменить проведение документов этого периода не выйдет. Снимите её в Администрирование → Настройки пользователей и прав → Даты запрета изменения, а после очистки поставьте обратно.

Как очистить базу 1С полностью и удалить справочники

Порядок удаления

Справочник нельзя удалить, пока на него ссылаются. Контрагент «живёт», пока есть хоть одна реализация, договор или запись в регистре сведений с его ссылкой. Отсюда жёсткий порядок:

  1. Документы всех видов.
  2. Записи независимых регистров сведений, где встречаются элементы справочников (цены, курсы, контактные данные).
  3. Подчинённые справочники: договоры, банковские счета, контактные лица.
  4. Основные справочники: контрагенты, номенклатура, физические лица.

Всё, что останется после удаления помеченных, — это объекты со ссылками. Список «не удалены» подскажет, кто держит каждый из них.

Что удалить нельзя

  • 🔒 Предопределённые элементы: основной склад, виды операций, предопределённые счета плана счетов. Конфигурация создаёт их сама и опирается на них в коде.
  • 🏢 Организация, на которую завязаны учётная политика и регламентированные отчёты, — удалится только после всех её документов.
  • 👤 Пользователи — их удаляют отдельно, через Администрирование → Настройки пользователей и прав → Пользователи, и проверяют, что останется хотя бы один с полными правами.

Когда проще не удалять, а собрать новую базу

Если задача — «только справочники, без документов», выгоднее не чистить старую базу. Создайте новую из шаблона той же конфигурации и того же релиза, а затем перенесите справочники обработкой «Выгрузка и загрузка данных XML». Она берётся с диска ИТС для вашей версии платформы и открывается через Файл → Открыть.

Плюсы такого пути: нет хвостов от удалённых документов, нет «раздутых» таблиц, база сразу компактная. Минус — настройки программы и учётную политику придётся заполнить заново или перенести той же обработкой.

Свертка базы и управление итогами

Свертка информационной базы в БП 3.0

Свертка убирает документы до выбранной даты и формирует вместо них документы с остатками на эту дату. Учёт после даты свертки продолжает сходиться: ОСВ на начало периода та же, что была.

Где найти: Администрирование → Обслуживание → Корректировка данных → Свертка информационной базы.

Перед запуском:

  1. Закройте месяцы до даты свертки обработкой «Закрытие месяца », иначе в остатки уйдут незакрытые затраты.
  2. Сформируйте ОСВ на дату свертки и сохраните её в файл — это эталон для проверки.
  3. Выполняйте свертку на копии базы. Только убедившись, что ОСВ совпала, повторяйте в рабочей или просто переключитесь на свёрнутую копию.

Свертка необратима. Документы за свёрнутый период исчезают, отчёт по ним можно будет получить только из архивной копии. Сохраните её отдельно и подпишите датой.

Свертка годится для старых закрытых периодов, по которым сданы отчёты и прошли проверки. Срок хранения первичных документов и учётных данных не меньше пяти лет (ст. 29 закона № 402-ФЗ), поэтому архивная копия должна быть доступна всё это время.

Управление итогами

Иногда под «сверткой итогов» понимают другое — ускорение отчётов без удаления данных. Для этого в платформе есть Все функции → Стандартные → Управление итогами. Там задают период рассчитанных итогов: платформа хранит итоги регистров только до этой даты, и отчёты по текущему периоду считаются быстрее.

Данные при этом не удаляются. Если отчёты стали медленными, но база ещё нужна целиком, начните с управления итогами и пересчёта итогов, а свертку оставьте на потом.

Очистка журнала регистрации и служебных данных

Журнал регистрации пишет каждый вход, запись объекта и ошибку. За несколько лет он вырастает до гигабайтов и занимает места больше, чем сами документы.

Как сократить журнал

  1. Откройте конфигуратор: Администрирование → Журнал регистрации.
  2. В меню окна журнала выберите сокращение журнала.
  3. Укажите дату: всё, что раньше, будет удалено. Отметьте сохранение удаляемых записей в файл, если нужен архив.

Чтобы журнал не рос снова, в конфигураторе откройте Администрирование → Настройка журнала регистрации. Там выбирают уровень событий (ошибки, предупреждения, информация, примечания) и разделение журнала по периодам — тогда старые периоды лежат отдельными файлами в каталоге 1Cv8Log и их проще архивировать.

Журнал — главный инструмент разбора «кто удалил документ». Не уменьшайте уровень до «не регистрировать» и храните архив хотя бы за год.

Другие служебные данные

  • 📝 Версии объектов: если включено версионирование, история изменений лежит в базе. Устаревшие версии удаляются в Администрирование → Общие настройки в блоке истории изменений.
  • 📎 Присоединённые файлы: сканы и вложения могут храниться прямо в базе. Перенос в тома на диске уменьшает её размер.
  • 🧾 Кеш клиента хранится на компьютере пользователя, а не в базе. Его очищают параметром запуска /ClearCache, на размер базы это не влияет.

Обработки и код для массового удаления

Когда документов сотни тысяч, ручная пометка через список занимает часы. Помогает внешняя обработка, которая сама ставит пометки по условию.

Пример: пометить на удаление все документы всех видов с датой раньше границы. Код ставится в модуль формы внешней обработки и выполняется на сервере.

&НаСервереБезКонтекста
Процедура ПометитьДокументыНаСервере(ДатаГраницы)

	Для Каждого МетаДок Из Метаданные.Документы Цикл

		Запрос = Новый Запрос;
		Запрос.Текст = СтрШаблон(
			"ВЫБРАТЬ Д.Ссылка КАК Ссылка
			|ИЗ Документ.%1 КАК Д
			|ГДЕ Д.Дата < &Граница И НЕ Д.ПометкаУдаления", МетаДок.Имя);
		Запрос.УстановитьПараметр("Граница", ДатаГраницы);

		Выборка = Запрос.Выполнить().Выбрать();
		Пока Выборка.Следующий() Цикл
			ДокОбъект = Выборка.Ссылка.ПолучитьОбъект();
			Попытка
				ДокОбъект.УстановитьПометкуУдаления(Истина);
			Исключение
				Сообщить(СтрШаблон("%1: %2", Выборка.Ссылка,
					КраткоеПредставлениеОшибки(ИнформацияОбОшибке())));
			КонецПопытки;
		КонецЦикла;

	КонецЦикла;

КонецПроцедуры

Пометка проведённого документа отменяет его проведение, поэтому движения удаляются автоматически. Ошибки — например, из-за даты запрета — выводятся сообщениями и не останавливают обработку. Дальше работает обычное удаление помеченных с проверкой ссылок.

Непосредственное удаление

В коде можно удалить объект сразу, минуя пометку:

ДокОбъект.ОбменДанными.Загрузка = Истина;
ДокОбъект.Удалить();

Это в разы быстрее, но ссылки не проверяются. Если на удалённый документ кто-то ссылался, в формах появится <Объект не найден> с кодом ссылки. Используйте непосредственное удаление только на копии и только когда удаляете всё связанное целиком — например, все документы до даты, без исключений.

Очистка независимого регистра сведений

Записанный пустой набор без отбора стирает весь регистр. Пример для курсов валют:

Набор = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
Набор.Записать();

Для частичной очистки перед записью установите отбор по измерению, например Набор.Отбор.Валюта.Установить(СсылкаНаВалюту).

Не удаляйте строки напрямую в таблицах SQL или PostgreSQL. Платформа хранит связи и итоги в нескольких таблицах сразу, и прямой DELETE оставляет базу в несогласованном состоянии, которое потом не всегда лечится тестированием.

Что сделать с базой после очистки

Удалённые записи освобождают место внутри базы, но сам файл или база СУБД сами не уменьшаются. Размер 1Cv8.1CD после удаления 70% документов останется прежним, пока вы его не сожмёте.

Тип базыЧем уменьшить размерКогда выполнять
ФайловаяКонфигуратор → Администрирование → Тестирование и исправление, флажок сжатия таблицБез пользователей, нужен монопольный доступ
MS SQL ServerПерестроение индексов и сжатие базы планом обслуживанияВ технологическое окно
PostgreSQLVACUUM FULL и ANALYZE по базеВ технологическое окно, таблицы блокируются

После сжатия:

  1. Выполните пересчёт итогов: в том же окне тестирования и исправления или через управление итогами.
  2. Сформируйте ОСВ и сверьте её с эталоном, сохранённым до очистки.
  3. Проверьте, что открываются ключевые справочники и нет ссылок <Объект не найден>.
  4. Сделайте новую резервную копию уже очищенной базы.

Тестирование и исправление файловой базы и обслуживание в СУБД требуют, чтобы пользователи вышли. Предупредите их заранее: открытые сеансы оборвутся или не дадут запустить проверку.

Чтобы база не разрасталась снова, включите регламентное удаление помеченных объектов и разделение журнала регистрации по периодам. Раз в квартал полезно смотреть, какие таблицы растут быстрее всего: в файловой базе — по размеру после сжатия, в серверной — отчётом СУБД о размере таблиц.

Частые вопросы

Можно ли восстановить удалённый документ в 1С?
Нет. После удаления помеченных объектов документ стирается физически. Вернуть его можно только из резервной копии: загрузить .dt во временную базу и перенести документ обработкой выгрузки XML.
Почему после удаления документов база не стала меньше?
Платформа освобождает место внутри файла или таблиц, но не возвращает его диску. Нужно сжатие: тестирование и исправление для файловой базы, обслуживание средствами СУБД для серверной.
Кто удалил документ, если в списке его уже нет?
Откройте журнал регистрации и отберите события удаления объектов за нужный период. Там видны пользователь, время и представление объекта. Если журнал сокращали, ищите в архивном файле.
Можно ли удалить помеченные объекты, пока люди работают?
В актуальных релизах БСП удаление выполняется без монопольного режима, но конкурирует с пользователями за блокировки. Объекты, которые сейчас открыты или редактируются, пропустятся. Большие объёмы удаляйте вне рабочего времени.
Чем свертка отличается от обычного удаления документов?
Обычное удаление просто убирает документы, и остатки на счетах меняются. Свертка сначала фиксирует остатки на дату документами ввода, а потом удаляет старые документы, поэтому учёт после даты сходится.