Вы здесь

Очистка клиент-серверных вариантов баз 1С 8.X

tags: 

Текст SQL запроса предназначенный для очистки таблиц документов, регистров накоплений и регистров бухгалтерии.
Работает на SQL 2000 на 2005 наверное тоже но не проверял.Все наверное сталкивались с необходимостью быстро очистить базу данных от документов. Но средствами платформы это растягивается н довольно продолжительный период времени. Я пошел простым путем: очищаем в SQL все таблицы документов и регистров и останется только вручную очистить регистры сведений привязанные к регистратору.

Вот собственно текст SQL запроса:

DECLARE @SQL VARCHAR(500)
DECLARE c CURSOR FOR
--Получаем список таблиц документов и регистров document-документы и табличные части, accnt-регистры бухгалтерии,
-- accttl- итоги по регистрам бухгалтерии, accum- регистры накопления с итогами
SELECT [name] FROM sysobjects WHERE (name LIKE '%document%' OR name LIKE '%accnt%' OR name LIKE '%accttl%' OR name LIKE '%accum%') AND xtype = 'U'
OPEN c
--цикл по отобранным таблицам
FETCH NEXT FROM c INTO @SQL
WHILE @@FETCH_STATUS = 0
BEGIN
--Формируем текст для очищения таблицы
SET @SQL = 'delete from ' + @SQL
--Выполняем очищение таблицы
--EXEC (@sql)
PRINT @SQL
FETCH NEXT FROM c INTO @SQL
END
CLOSE c
DEALLOCATE c

Внимание в приведенном выше запросе комментирована строка выполняющая очищение таблицы (EXEC...).
Выполнение запроса с раскомментированой строкой выполнять на свой страх и риск.