gifts2017

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

Опубликовал Дмитрий Глазырин (glassman) в раздел Обработки - Свертка базы

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

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

 

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

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

 

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

 

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

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

Наименование Файл Версия Размер Кол. Скачив.
Чистка базы SQL.ert
.ert 34,00Kb
03.01.14
202
.ert 34,00Kb 202 Скачать

См. также

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

Комментарии

1. Епрст (Ёпрст) 11.12.09 11:28
При таком подходе, лучше truncate RG делать...

+ Нет удаления проводок, итогов по счетам и т.д
+Нет удаления из таблички ссылок 1SCRDOC
+Нет удаления периодики из 1sconst
2. Епрст (Ёпрст) 11.12.09 11:29
+нет удаления ручных операций
3. Епрст (Ёпрст) 11.12.09 11:30
Тогда бы не пришлось делать ТиИ и очистку ссылок, что быстрее в разы, а просто пересчитать итоги.
4. Дмитрий Глазырин (glassman) 11.12.09 11:34
База была на регистрах, с бухгалтерской частью не заморачивался. С удалением периодических реквизитов согласен. С таблицей ссылок не совсем - она пересоздастся при ТиИ.
5. Епрст (Ёпрст) 11.12.09 11:37
(4) Это то ясно, что ТиИ исправит, вот только оно надо ? На большой базе = смерть..Вся оптимизация коту под хвост..
И делеитить итоги тоже, если не нужны - сразу трункейт и привет, потом пересчет... тоже прямым запросом, желательно.
6. Епрст (Ёпрст) 11.12.09 11:38
+4 И еще, если речь о стандартной типовой, нужно прибивать цены (не все) и партии..., как минимум :)
7. Епрст (Ёпрст) 11.12.09 11:42
Да... еще непонятен смысл создания временных таблиц, когда всё можно написать без них..
8. Дмитрий Глазырин (glassman) 11.12.09 11:47
Мне он тоже сейчас не очень понятен :)
Обработке года 3 уже.

Будет время - доведу до ума, обновлю.
9. Александр Зубцов (iov) 13.12.09 22:27
(8) Как показывает практика такие слова в конце = смерть .
не обновится. А жаль.. было бы интересно.
10. Евгений Долиновский (Dolly_EV) 16.12.09 08:00
(8) если доведешь до ума, и если, например, через Класс "ПрямойЗапрос" привяжешь это и к DBF - цены тебе не будет! ))) "+" авансом
11. Дмитрий Глазырин (glassman) 18.12.09 15:57
В процессе доработки, заменяющие проверку ссылочной целостности. Плюс всякие вкусности по свертке.
12. Murat Кертмен (Kertman) 12.02.10 11:48
Подходит, беру.
+ однозначно.
13. Егор Великоднев (egor_gsm) 29.01.15 13:02
Знаю что давно дело было, но..... А если есть ссылка на удаленный документ, при первом же тестировании будет создан пустой объект. Как с этим бороться ?
14. Дмитрий Глазырин (glassman) 29.01.15 16:26
(13) egor_gsm, при тестировании и исправлении поставить опцию "удалять данные объектов".
15. ivory (ivory) 20.10.15 10:34
Добрый день! Хочу уточнить, в окне "Тестирование и исправление информационной базы" ставить флажки:

Реиндексация
Проверка логической целостности
Пересчет служебных данных
Пересчет итогов

В окне "Настройка исправления информационной базы" :

Очищать ссылки
Удалять данные объектов

Правильно?

Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа