![]() |
Очень медленно удаляются документы из базы 1С 7.7 на SQL2000 Что можно оптимизировать? А то получается, что трое суток понадобится. Оно может и хорошо, но хочется улучшить алгоритм... Процедура Сформировать() Док=СоздатьОбъект("Документ"); Док.ВыбратьДокументы(ДатаНач,ДатаКон); Пока (Док.ПолучитьДокумент()=1) Цикл Сообщить(Строка(Док.НомерДок)+" "+Док.ДатаДок); Док.СделатьНеПроведенным(); Док.Удалить(1); КонецЦикла; КонецПроцедуры |
Баян. ОбратныйПорядок, либо ТА-БИ раньше самого раннего документа. Удалять в транзакции штук по 200-500. Да, и не страшно удалять непосредственно? Может лучше через пометку? |
ОбратныйПорядок() |
если надо как в (0) - то проще прямым запросом делетнуть |
а, не. соврал - надо еще во всех регистрах и периодике движенияпоудалять... |
1 - выборка разве не улетит при удалениях? 2 - транзакция 3 - перенос ТА Альтернативный вариант - прямым запросом, вот тут будет не выигрыш, а целый куш |
интересно а зачем сделать не проведенным ? я за запрос , запрос в тз , обход тз в транзакции |
Сообщить(..) убери :) |
(7)верное замечание. неслабо тормозит функция. Я бы не стал выбирать все документы сразу, а как вариант цикл по дням, а в дне выборка в таблицу значений и по ней обход в транзакции. |
так все таки зачем сделать не проведенным ? |
9-101 > потому что удаляет непосредственно |
(10)и что ? какой сакрвльный смысл в распроведении ?) Может нашему коллеге быстрее будет не удалять, а оставшиеся документы перенести в чистую базу ?) |
(10) тоесь Удалить(1) на проведенном уже не работает ? Оо ЗЫ ;)) |
[url]http://www.forum.mista.ru/topic.php?id=670912&all=1[/url] ЗЫ продолжение банкета ;)) |
там банкет круче, скоро будут танцы на столах. Там даже файлы предлагали удалять )) |
11-USSR > 12-101 > типа вы хотите сказать, что движения проведенного документа удалятся сами? |
(15)Именно это мы и хотим торжественно заявить ) |
ох Ух Ух ;)) |
я с вас просто шизею, господа ......... лето на дворе, на пляже валяться надо, как я [img]http://static.ngs.ru/news/preview/8090b36a57bfc529154aa76315ec4c7d07e4322f_220_220.jpg[/img] |
16-USSR > Вообще-то, как ни странно, разделение операций имеет смысл быть ;) Дело в том, что удаление движений затрагивает одну группу таблиц БД, удаление же самого тела объекта вместе с табличными частями - совсем другую. Особенно, если это удаление производить [b]правильно[/b] - с проверкой на ссылки. Замечу еще, что удаление движений требует одних полномочий, а удаление объектов - других, более мягких. |
лежу на пляжу и работаю с этой гадостью [img]http://it.emcelettronica.com/files/node_images/launchpad-MSP430.jpg[/img] |
16-USSR > видимо, позабыл я совсем 7.7 |
хотя видел , и не раз , движения у не проведенного или даже помеченного на удаление документа (бывает и движения совсем без документа встречаются), но это скорее исключение, чем правило ЗЫ кстати посмотреть есть ли движения у не проведенного документа оч просто, открываем движения у проведенного , и не закрывая окна курсор на непроведенный, еси они тама есть то покажет ;)) ЗЫЫ чот занастальгировал об экспериментах |
[quote=101;31065052]хотя видел , и не раз , движения у не проведенного или даже помеченного на удаление документа (бывает и движения совсем без документа встречаются)[/quote]во-во и я встречал, и кажется после непосредственного удаления... если чё - база была скульная |
(19)смысл может и есть, но реально затруднительно сказать в чем. Думаю, что 1с просто сама последовательно отменяет проведение, а затем помечает на удаление документ в журнале, в таблицах DH и DT (шапка и табличная часть). Замечу, что именно помечает, то есть физического удаления на уровне таблиц нет. То есть, если ничего не делалось, то можно даже восстановить после непосредственного удаления в 1с. А при пометке документа на удаление помечается лишь поле ISMARK |
можно вообще разделить на : 1)снятие с проведения, транзакцией играть 20-100 документов 2)пометку на удаление 3)удаление помеченных штатными средствами |
(23) это как бэээ исключения , так как в скуле в признаке проведения может стоять и не то число которое в дбф , 5-ка например, так что это все мелочи ;)) а движения отдельно отлавливаются так же - на раз |
(22)я встречал несколько раз, но видимо это были какие то сбои. В 1С и не такое вcтретишь ) |
для проводок я, помнится, вот этим пользовался [url]http://www.1csql.ru/materials/articles/admin.html~947a192a-ffb7-7436-1fa6-308a005bbd6b[/url] |
(20)транзакция по 20 документов имеет очень мало смысла. Удаление помеченных штатными средствами тоже та еще песня, и удалить может то, что и не надо было. Хотя уже это не так критично, раз нет ссылок Короче, эта тема уже мусолилась на 1000 раз в темах свертки базы, помню один Гуру даже целый трактат написал. Забыл я его фамилию ) |
(27) я такое кхмм видел , когда сам скуль вальнул ЗЫ скульная 1С , 20-ый релиз , в базе проводились документы , и одновременно по этим же документам были запросы из ентерпрайса,аксесса и екселя и самой 1С ;)) |
Зачем документы так кучно удалять? Обрезка базы или умный юзер хочет грохнуть документы в базе незаметно? |
хм, все документы удалить значит... и все движения по регистрам, видимо есть мега извращённый способ - удалить объекты метаданных в конфигураторе (видимо кроме справочников), сохраниться и обновиться на полный мдшник. мегаизвращённый - потому что хрен удалишь так просто. |
(19) при программном распроведении - пофиг на полномочия..? |
(22) а не было ли при этом УРБД? |
20 - какое лето, +13 [url]http://weather.nsu.ru/[/url] |
| Текущее время: 15:25. Часовой пояс GMT +3. |