Генерация SQL-скрипта для удаления документов при свертке базы.


Внешняя обработка (1С 7.7) для генерации SQL-скрипта, который удаляет документы из базы при ее свертке. Есть отбор за период, по видам документов, возможность чистки регистров. Обработка универсальная, не зависит от конфигурации.

Стояла задача - "обрезать" 24-х гигабайтную 3-х летнюю базу по начало года, чтобы документы с 01.01 по текущий день остались на месте. Документооборот очень активный, одних только реализаций 700-1300 в день. Суббота и воскресенье - рабочии дни в компании. Помимо переноса остатков надо удалить документы за два прошедших года и оставить за 2 квартала текущего. Сначала пробовали на тестовой базе удалить документы обработкой на встроенном языке. Замер показал, что 2 года будут удаляться практически сутки даже со всякими ухишрениями. На такой промежуток времени останавливать работу базы было нельзя. Так и родилась эта обработка. Скрипт, который она сгенерировала, справился с задачей за 1.5 часа.

 

Инструкция по пользованию.

Открываем обработку в базе, из которой надо удалять документы. Выбираем все или несколько типов документов из списка. Если есть ограничение по датам - ставим соответствующую галочку и вводим период. Галочка "Очищать регистры" убирает движения удаленных документов из таблиц движений регистров и очищает таблицы итогов. Движения документов, которые остались в базе, не трогаются. Нажимаем кнопку "Сгенерировать скрипт", полученный текст вставляем в Query Analizer (SQL2000) или Manegment Studio (для 2005-ого сервера), запускаем скрипт на выполнение.

 

Напоминание. Т.к. удаление объектов непосредственное и очищаются таблицы итогов регистров (если стоит соответствующая галочка), то необходимо после выполнения скрипта запустить тестирование и исправление ИБ с очисткой ссылок и пересчетом итогов.

 

Требование. Работает с использованием внешней компоненты 1С++

Файлы обработки:

-