v7: Как быстро удалить список документов в 1с77 торговля склад #645055


#0 by VBMADD
Привет братьям по разуму. Запустил обратотку на выполнение, а там оказалось 100 000 документов. Уже 5 часов удаляет а конца не видно. можно ли как то ускорить такой процесс, как для этого нужно модернизировать обработку Спасибо всем кто откликнулся
#1 by Torquader
Чего-то у вас в обработке совсем не то написано. По крайней мере, второй цикл выполняться не должен. Потом, полезно удаление "завернуть" в транзакцию по 10-100 документов - будет быстрее. Также нежелательно удалять документы сразу в выборке.
#2 by Скользящий
А не проще дбфку с нужным документом грохнуть? )
#3 by Cthulhu
: а движения - хренсними, Ок.
#4 by ДенисЧ
А ТИИ на что? :-)
#5 by Torquader
Во-первых, dbf-ки может быть и две (а иногда и ни одной), но журнале ссылки на документ останутся, да и распровести нужно, чтобы не было движений в регистрах от неизвестно кого.
#6 by МимохожийОднако
#7 by VBMADD
Вот это выполняется но долго
#8 by Cthulhu
: быстрое такое, угу...
#9 by Torquader
Не - ребята - съезд дятлов в другой ветке - конечно - есть много способов - запоганить базу, но удалить dbf-это как раз из этого.
#10 by ДенисЧ
#11 by VBMADD
Это выполняется но уж очень медленно, а хотца как бы побыстрее
#12 by VBMADD
это будет быстрее ? Почему?
#13 by Cthulhu
: так оно будет начиная с 1000-го документа на каждом документе фиксировать транзакцию... вот времени-то сэкономится!.. )))
#14 by Torquader
#15 by Скользящий
Прямыми запросами можно быстро удалить. но это надо темой владеть )
#16 by Torquader
100 000 чеков - ну вы и наторговали под новый год.
#17 by ДенисЧ
Ви непоеврите, но таки да, оно будет таки быстрее. На дбф.
#18 by VBMADD
Ну дык раскрой тепу то по подробней...
#19 by ДенисЧ
Транзакции - они, с**а, такие... Пока не зафиксируешь - в памяти сидят... (для дбф)
#20 by Torquader
Основное время тратится на "СделатьНепроведенным" - его прямыми запросами очень сложно ускорить, так как нужно смотреть все движения, которые этот документ формирует, и удалять их. А удаление - оно и штатно быстро выполняется.
#21 by VBMADD
Эдак процентов на 5 бастрее что ли Вон спец про запросы тему поднял а раскравать подробней не хочет... Может убрать из обработки сделать непроведенным...
#22 by Torquader
И чем это поможет ? Распроведение документов - достаточно медленная операция, и ускорить её можно только прямым выполнением того, что делает 1С при распроведении документа. При удалении система сама распрводит документ, так что убирать эту команду не стоит.
#23 by VBMADD
Запустил обработку от с транзакциями засек время будем посмотреть
#24 by Базис
ТА уже вспомнили?
#25 by Скользящий
Мне специалист по прямым запросам удалял документы из базы скульной где было около 25млн документов. В дбф вряд ли поможет. )
#26 by Cthulhu
: Ви не поверите, но таки у Вас чито-то с глазами или где-то между ними и затылком. прочитать попробуйте по слогам и мой комментарий, и Ваш код (в котором обнуление щоччика при фиесации транзакций так мило позабыто).
#27 by Скользящий
Поскольку база была бух, код тебе мало поможет. Сначала удалялись периодические реквизиты, потом очистка движений документов, потом удаление документов с контролем ссылочной целостности. Для примера как удалялись движения в скуле.
#28 by Тьма
Прямые запросы проще, непонятно, что ли.
#29 by VBMADD
Если знаешь как дык черкни основной код
#30 by VBMADD
Вобщем за 10 минут порядка 6000 документов удаляет по коду от
#31 by VBMADD
Не ошибся за 20 минут
#32 by МимохожийОднако
Иногда полезно ТА поставить перед дата1
#33 by Torquader
С транзакциями проще прерывать транзакцию (Зафиксировать Начать) после трёх-четырёх секунд выполнения - как показала практика, система упирается в кеширование памяти на диск и кардинальное замедление работы как только не хватает места для хранения сделанных изменений.
#34 by Cthulhu
: тогда и прямыми можно выносить движения - итоги то пересчитывать не надо...
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям