gifts2017

Обработка sql-удаления объектов базы (чистка базы)

Опубликовал Александр Бобрышов (ShurikDM) в раздел Администрирование - Чистка базы

Простая и очень быстрая обработка для очистки базы путем непосредственного удаления записей из таблиц SQL (используется ADODB.Connection)

Простая и очень быстрая обработка для очистки базы путем непосредственного удаления записей из таблиц SQL (используется ADODB.Connection)

Зачастую тестовые базы клиентов (базы используемые для тестирования при приемке работ) со временем становятся основными. И возникает необходимость зачистить тестовые данные (документы, проводки) с возможностью оставить справочные данные, либо необходимость полной очитски базы. В связи с этим, наваял простенькую обработку, которая, пробегаясь по метаданным, получает физические имена таблиц SQL и зачищает непосредственно эти таблицы при помощи ADODB.Connection.

Основное приемущество обработки - скорость. Для примера, нетиповая база (50 рег.св., 50 документов, 50 справочников) на 4 Гб очищается примерно за 30 сек. Но эти показатели могут варьироваться в зависимости от количества объектов конфигурации, качества канала к sql-серверу и производительности sql-сервера.

Обработка работает в двух режимах: удаление только документов и удаление всех данных. В первом режиме удаляются все документы, очищаются все регистры накопления, бухгалтерии и расчетов + можно указать список регистров сведений, которые нужно зачистить вместе с документами, дабы избежать битых ссылок в регистрах. Во втором режиме помимо вышеперечисленного очищаются справочники, ПВХ, планы счетов, планы видов расчета (удаляются все элементы, кроме предопределенных) и все регистры сведений. Все объекты удаляются безвозвратно (если нет бэкапов sql-базы), так что пользуйте осторожно на свой страх и риск. По "F1" мини-хелп.

P.S. Моя первая публикация, так что по традиции: "сильно не пинайте".

 

Добавлена кнопка, по которой можно выбрать определенные справочники для удаления.

Скачать файлы

Наименование Файл Версия Размер
Чистка базы 78
.zip 6,40Kb
28.12.11
78
.zip 6,40Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Erbolat Akkusov (Banzai79) 27.12.11 11:40
Запускаю обработку жму удалить документы выходить ошибка...
{Форма.ФормаЧисткаБазы(54)}: Поле объекта не обнаружено (GUIDыОбъектов)
НаборРС = РегистрыСведений.GUIDыОбъектов.СоздатьНаборЗаписей();
что делать?
2. Александр Бобрышов (ShurikDM) 28.12.11 10:25
(1) Banzai79,
Прошу прощения. Остался хвост от моей базы. Перезалил обработку, отправил на модерацию. В ближайшее время можно закачать заново.
3. Александр Крынецкий (echo77) 04.01.12 22:41
(0) Удалить ВСЕ данные из БД можно с помощью кнопки удаления в консоли серверов 1С с режимом удаления - очистка базы. Или просто выгрузить конфигурацию, грохнуть БД на SQL и загрузить конфигурацию в чистую БД
4. Александр Бобрышов (ShurikDM) 10.01.12 12:21
(3) echo77,
Не спорю, можно. Но обработка создавалась в помощь заказчику, я не был уверен в знании ими вышеописанных способов. Плюс к этому, очистка всей базы - это не основное ее предназначение. Тут важно то, что ею можно удалить только документы и записи из регистров, связанные с этими документами, а вся справочная информация остается.
5. Алекс Ю (AlexO) 19.09.12 10:45
(4) ShurikDM,
и как вы определяете, что удаляемые записи связаны именно с удаляемыми документами?
___________________________________________________
Очередной изобретатель квадратного колеса. Уже столько было попыток - и каждый раз находится новый "первопроходец".
Вместо того, чтобы распровести нужные документы - начинают работать работать с базой SQL напрямую, пытаясь имитировать 1с-сервер. Тем более, есть ТИПОВЫЕ обработки очистки справочников, регистров и документов.
Только вот ни один не задумается - у кого же все-таки 1С сервер лучше получится, у них или у 1С?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа