К списку форумов К списку вопросов
Как быстрее всего удалить все документы?
Незнайка на Луне
02.10.2004 - 12:40
Простым перебором очень долго, а ОбратныйПорядок(1) тут не катит...
Бит
1 - 02.10.2004 - 12:42
1Создать новую базу
2пометить все на удаление и удалить
Незнайка на Луне
2 - 02.10.2004 - 12:45
То есть пометить все на удаление и удалить быстрее чем просто удалить?
Бит
3 - 02.10.2004 - 12:48
Проще. А если сам можешь то вперед. Но оптимизировать этот процесс у меня лично не удалось, Все плачевно и долго. А сколько документов?
Незнайка на Луне
4 - 02.10.2004 - 12:53
13000, удалял где-то полчаса.
Бит
5 - 02.10.2004 - 12:56
Я думаю быстрее врядли получится. Выложи код может только алгоритм уличшить, а так ...
wait
6 - 02.10.2004 - 12:56
если база dbf, тожно создать новую и скопировать туда все кроме файлов dh*.*,dt*.*,ra*.*,rg*.*,+посмотреть в dd что еще не нужно копировать в общем в зависимости от устан. компонент и потом запустить программу монопольно.Или вообще скопировать только sc*.*,это зависит от того что нужно оставить.
Незнайка на Луне
7 - 02.10.2004 - 13:16
Ну да можно попробовать скопировать только sc*.* и реорганизацию. Нужны только справочники
ЧерныйПлащ
8 - 02.10.2004 - 17:28
А почему не катит ОбратныйПорядок(1)?
Кстати, в транзакции это происходит несколько быстрее. Не забывай только ее периодически завершать и начинать опять.
SnarkHunter
9 - 02.10.2004 - 18:54
Кроме sc*.* еще несколько файлов нужно...
Господин Забалуев
10 - 02.10.2004 - 20:18
(0) создать новую базу и перекинуть туда все спр-ки с помощью Export/import.ert...
NS
11 - 02.10.2004 - 22:22
УстановитьТАНа('01.01.1980');
Док=Создатьобъект("Документ");
начатьтранзакцию();
а=0;
Док.ВыбратьДокументы();
Пока док.получитьдокумент()=1 Цикл
  а=а+1;
  Если а%100=0 Тогда
    зафиксироватьтранзакцию();
    начатьтранзакцию();
    состояние(Формат(док.ДатаДок,"ДДДММММГГГГ");
  КонецЕсли;
  док.Удалить(начисто);
КонецЦикла;
Зафиксироватьтранзакцию();
УстановитьТАНА(ТекущаяДата());

К списку вопросов на форуме 1C

>>