Стояла задача - "обрезать" 24-х гигабайтную 3-х летнюю базу по начало года, чтобы документы с 01.01 по текущий день остались на месте. Документооборот очень активный, одних только реализаций 700-1300 в день. Суббота и воскресенье - рабочии дни в компании. Помимо переноса остатков надо удалить документы за два прошедших года и оставить за 2 квартала текущего. Сначала пробовали на тестовой базе удалить документы обработкой на встроенном языке. Замер показал, что 2 года будут удаляться практически сутки даже со всякими ухишрениями. На такой промежуток времени останавливать работу базы было нельзя. Так и родилась эта обработка. Скрипт, который она сгенерировала, справился с задачей за 1.5 часа.
Инструкция по пользованию.
Открываем обработку в базе, из которой надо удалять документы. Выбираем все или несколько типов документов из списка. Если есть ограничение по датам - ставим соответствующую галочку и вводим период. Галочка "Очищать регистры" убирает движения удаленных документов из таблиц движений регистров и очищает таблицы итогов. Движения документов, которые остались в базе, не трогаются. Нажимаем кнопку "Сгенерировать скрипт", полученный текст вставляем в Query Analizer (SQL2000) или Manegment Studio (для 2005-ого сервера), запускаем скрипт на выполнение.
Напоминание. Т.к. удаление объектов непосредственное и очищаются таблицы итогов регистров (если стоит соответствующая галочка), то необходимо после выполнения скрипта запустить тестирование и исправление ИБ с очисткой ссылок и пересчетом итогов.
Требование. Работает с использованием внешней компоненты 1С++