Страницы статьи:
  • «
  • 1
  • »

Иногда необходимо быстро удалить большое количество документов.

Например быстрое удаление может понадобится когда необходимо провести свертку базы данных задним числом. Например база ведется с 2005 года, а нам необходимо произвести свертку на 1 января 2009 года, чтобы все документы до 1 января 2009 года были удалены, а после 1 января 2009 года остались в базе.

В принципе удаление документов можно произвести программой в 5 строк:

Процедура Сформировать()
Д = СоздатьОбъект(«Документ»);
Д.ВыбратьДокументы(НачДата,КонДата);
Пока Д.ПолучитьДокумент() = 1 Цикл
Сообщить(Д.ТекущийДокумент());
Состояние(Д.ДатаДок);
Д.Удалить();
КонецЦикла;
КонецПроцедуры

Но дело в том, что при таком удалении каждый документ будет удаляться долго, потому что в начале он быдет «распроведен», сделан не проведенным, а потом только документ будет удален. Если необходимо удалить очень много документов, то только лишь процедура удаления может занять очень продолжительное время. Как же быть в данном случае?

Авторские права на предоставленный материал принадлежат автору сайта http://extremallife.ru

Выход прост.

В DBF ной базе нам достаточно удалить файлы регистров, по которым проводятся документы. Движения по регистрам в 1С хранятся в файлах начинающихся на rg и ra. То есть это файлы rg*.* ra*.*.

Эти файлы можно удалить вручную, а можно и c помощью DOS командой каталога информационной базы. Только естественно делайте это на копии информационной базы.

del rg*.*
del ra*.*

После удаления этих файлов необходимо зайти в 1С монопольно (можно даже не переиндексировать) и запустить обработку на уделение документов.

Процедура Сформировать()
Д = СоздатьОбъект(«Документ»);
Д.ВыбратьДокументы(НачДата,КонДата);
Пока Д.ПолучитьДокумент() = 1 Цикл
Сообщить(Д.ТекущийДокумент());
Состояние(Д.ДатаДок);
Д.Удалить();
КонецЦикла;
КонецПроцедуры

Если удалены файлы регистров, то обработка удаления сработает в разы быстрее, так как не придется удалять движения по регистрам.

Единственный минус этого способа – это то, что необходимо будет перепровести ВСЕ неудаленные документы.

Страницы статьи:
  • «
  • 1
  • »
Просмотров: 2,228
В FaceBook

Автор статьи admin апреля 20, 2009

Рубрики: , Работа

Теги: , ,


Комментарии

12 комментариев в “Быстрое удаление документов 1С”

Страниц: [2] 1 » Все

  1. 12
    admin пишет:

    Для SQL – это тольк остредствами SQL )))
    А имена объектов (таблиц) у всех разные.

  2. 11
    Qwest пишет:

    Если тупо удалять в базе будет анархия! Лучше медленно но верно удалять!

    Может у кого есть вариант написанный для SQL, выкладывайте если не жалко!

Страниц: [2] 1 » Все

Выскажи свое мнение

Я не робот.Нажми обязательно