Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Очень медленно удаляются документы из базы 1С 7.7 на SQL2000 (http://forums.kuban.ru/f1040/ochen-_medlenno_udalyayutsya_dokumenty_iz_bazy_1s_7_7_na_sql2000-4418316.html)

niks77 27.06.2013 18:30

Очень медленно удаляются документы из базы 1С 7.7 на SQL2000
 
Что можно оптимизировать? А то получается, что трое суток понадобится. Оно может и хорошо, но хочется улучшить алгоритм...

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

Billi 27.06.2013 18:40

Баян.
ОбратныйПорядок, либо ТА-БИ раньше самого раннего документа.
Удалять в транзакции штук по 200-500.

Да, и не страшно удалять непосредственно?
Может лучше через пометку?

EarlyBird 27.06.2013 18:42

ОбратныйПорядок()

Чучундер 28.06.2013 00:58

если надо как в (0) - то проще прямым запросом делетнуть

Чучундер 28.06.2013 00:59

а, не. соврал - надо еще во всех регистрах и периодике движенияпоудалять...

USSR 28.06.2013 01:31

1 - выборка разве не улетит при удалениях?
2 - транзакция
3 - перенос ТА
Альтернативный вариант - прямым запросом, вот тут будет не выигрыш, а целый куш

101 28.06.2013 08:46

интересно а зачем сделать не проведенным ?
я за запрос , запрос в тз , обход тз в транзакции

user1C 28.06.2013 09:01

Сообщить(..) убери :)

USSR 28.06.2013 09:13

(7)верное замечание. неслабо тормозит функция.
Я бы не стал выбирать все документы сразу, а как вариант цикл по дням, а в дне выборка в таблицу значений и по ней обход в транзакции.

101 28.06.2013 09:14

так все таки зачем сделать не проведенным ?

Uho 28.06.2013 09:22

9-101 > потому что удаляет непосредственно

USSR 28.06.2013 09:25

(10)и что ? какой сакрвльный смысл в распроведении ?)
Может нашему коллеге быстрее будет не удалять, а оставшиеся документы перенести в чистую базу ?)

101 28.06.2013 09:27

(10) тоесь Удалить(1) на проведенном уже не работает ? Оо
ЗЫ ;))

101 28.06.2013 09:30

[url]http://www.forum.mista.ru/topic.php?id=670912&all=1[/url]
ЗЫ продолжение банкета ;))

USSR 28.06.2013 09:36

там банкет круче, скоро будут танцы на столах. Там даже файлы предлагали удалять ))

Uho 28.06.2013 09:43

11-USSR >
12-101 >
типа вы хотите сказать, что движения проведенного документа удалятся сами?

USSR 28.06.2013 09:48

(15)Именно это мы и хотим торжественно заявить )

101 28.06.2013 09:53

ох Ух Ух ;))

Helen1986 28.06.2013 10:03

я с вас просто шизею, господа .........

лето на дворе, на пляже валяться надо, как я

[img]http://static.ngs.ru/news/preview/8090b36a57bfc529154aa76315ec4c7d07e4322f_220_220.jpg[/img]

VZ 28.06.2013 10:08

16-USSR > Вообще-то, как ни странно, разделение операций имеет смысл быть ;)
Дело в том, что удаление движений затрагивает одну группу таблиц БД, удаление же самого тела объекта вместе с табличными частями - совсем другую. Особенно, если это удаление производить [b]правильно[/b] - с проверкой на ссылки.
Замечу еще, что удаление движений требует одних полномочий, а удаление объектов - других, более мягких.

Helen1986 28.06.2013 10:10

лежу на пляжу
и работаю с этой гадостью

[img]http://it.emcelettronica.com/files/node_images/launchpad-MSP430.jpg[/img]

Uho 28.06.2013 10:24

16-USSR > видимо, позабыл я совсем 7.7

101 28.06.2013 10:28

хотя видел , и не раз , движения у не проведенного или даже помеченного на удаление документа (бывает и движения совсем без документа встречаются), но это скорее исключение, чем правило
ЗЫ кстати посмотреть есть ли движения у не проведенного документа оч просто, открываем движения у проведенного , и не закрывая окна курсор на непроведенный, еси они тама есть то покажет ;))
ЗЫЫ чот занастальгировал об экспериментах

Uho 28.06.2013 10:33

[quote=101;31065052]хотя видел , и не раз , движения у не проведенного или даже помеченного на удаление документа (бывает и движения совсем без документа встречаются)[/quote]во-во и я встречал, и кажется после непосредственного удаления... если чё - база была скульная

USSR 28.06.2013 10:35

(19)смысл может и есть, но реально затруднительно сказать в чем. Думаю, что 1с просто сама последовательно отменяет проведение, а затем помечает на удаление документ в журнале, в таблицах DH и DT (шапка и табличная часть). Замечу, что именно помечает, то есть физического удаления на уровне таблиц нет. То есть, если ничего не делалось, то можно даже восстановить после непосредственного удаления в 1с. А при пометке документа на удаление помечается лишь поле ISMARK

Jimbo 28.06.2013 10:36

можно вообще разделить на :
1)снятие с проведения, транзакцией играть 20-100 документов
2)пометку на удаление
3)удаление помеченных штатными средствами

101 28.06.2013 10:36

(23) это как бэээ исключения , так как в скуле в признаке проведения может стоять и не то число которое в дбф , 5-ка например, так что это все мелочи ;)) а движения отдельно отлавливаются так же - на раз

USSR 28.06.2013 10:36

(22)я встречал несколько раз, но видимо это были какие то сбои. В 1С и не такое вcтретишь )

Uho 28.06.2013 10:38

для проводок я, помнится, вот этим пользовался
[url]http://www.1csql.ru/materials/articles/admin.html~947a192a-ffb7-7436-1fa6-308a005bbd6b[/url]

USSR 28.06.2013 10:40

(20)транзакция по 20 документов имеет очень мало смысла. Удаление помеченных штатными средствами тоже та еще песня, и удалить может то, что и не надо было. Хотя уже это не так критично, раз нет ссылок
Короче, эта тема уже мусолилась на 1000 раз в темах свертки базы, помню один Гуру даже целый трактат написал. Забыл я его фамилию )

101 28.06.2013 10:52

(27) я такое кхмм видел , когда сам скуль вальнул
ЗЫ скульная 1С , 20-ый релиз , в базе проводились документы , и одновременно по этим же документам были запросы из ентерпрайса,аксесса и екселя и самой 1С ;))

zaic 28.06.2013 12:06

Зачем документы так кучно удалять?
Обрезка базы или умный юзер хочет грохнуть документы в базе незаметно?

qweqwe123123 28.06.2013 18:27

хм, все документы удалить значит... и все движения по регистрам, видимо
есть мега извращённый способ - удалить объекты метаданных в конфигураторе (видимо кроме справочников), сохраниться и обновиться на полный мдшник.
мегаизвращённый - потому что хрен удалишь так просто.

Чучундер 29.06.2013 15:54

(19) при программном распроведении - пофиг на полномочия..?

Чучундер 29.06.2013 15:55

(22) а не было ли при этом УРБД?

который не честный 01.07.2013 06:54

20 - какое лето, +13
[url]http://weather.nsu.ru/[/url]


Текущее время: 15:25. Часовой пояс GMT +3.