Регистрация Правила Главная форума Поиск |
0
- 27.06.2013 - 18:30
|
Что можно оптимизировать? А то получается, что трое суток понадобится. Оно может и хорошо, но хочется улучшить алгоритм... Процедура Сформировать() Док=СоздатьОбъект("Документ"); Док.ВыбратьДокументы(ДатаНач,ДатаКон); Пока (Док.ПолучитьДокумент()=1) Цикл Сообщить(Строка(Док.НомерДок)+" "+Док.ДатаДок); Док.СделатьНеПроведенным(); Док.Удалить(1); КонецЦикла; КонецПроцедуры | |
1
- 27.06.2013 - 18:40
|
Баян. ОбратныйПорядок, либо ТА-БИ раньше самого раннего документа. Удалять в транзакции штук по 200-500. Да, и не страшно удалять непосредственно? Может лучше через пометку? | |
2
- 27.06.2013 - 18:42
| ОбратныйПорядок() | |
3
- 28.06.2013 - 00:58
| если надо как в (0) - то проще прямым запросом делетнуть | |
4
- 28.06.2013 - 00:59
| а, не. соврал - надо еще во всех регистрах и периодике движенияпоудалять... | |
5
- 28.06.2013 - 01:31
|
1 - выборка разве не улетит при удалениях? 2 - транзакция 3 - перенос ТА Альтернативный вариант - прямым запросом, вот тут будет не выигрыш, а целый куш | |
6
- 28.06.2013 - 08:46
|
интересно а зачем сделать не проведенным ? я за запрос , запрос в тз , обход тз в транзакции | |
7
- 28.06.2013 - 09:01
| Сообщить(..) убери :) | |
8
- 28.06.2013 - 09:13
|
(7)верное замечание. неслабо тормозит функция. Я бы не стал выбирать все документы сразу, а как вариант цикл по дням, а в дне выборка в таблицу значений и по ней обход в транзакции. | |
9
- 28.06.2013 - 09:14
| так все таки зачем сделать не проведенным ? | |
10
- 28.06.2013 - 09:22
| 9-101 > потому что удаляет непосредственно | |
11
- 28.06.2013 - 09:25
|
(10)и что ? какой сакрвльный смысл в распроведении ?) Может нашему коллеге быстрее будет не удалять, а оставшиеся документы перенести в чистую базу ?) | |
12
- 28.06.2013 - 09:27
|
(10) тоесь Удалить(1) на проведенном уже не работает ? Оо ЗЫ ;)) | |
13
- 28.06.2013 - 09:30
| http://www.forum.mista.ru/topic.php?id=670912&all=1 ЗЫ продолжение банкета ;)) | |
14
- 28.06.2013 - 09:36
| там банкет круче, скоро будут танцы на столах. Там даже файлы предлагали удалять )) | |
15
- 28.06.2013 - 09:43
|
11-USSR > 12-101 > типа вы хотите сказать, что движения проведенного документа удалятся сами? | |
16
- 28.06.2013 - 09:48
| (15)Именно это мы и хотим торжественно заявить ) | |
17
- 28.06.2013 - 09:53
| ох Ух Ух ;)) | |
18
- 28.06.2013 - 10:03
|
я с вас просто шизею, господа ......... лето на дворе, на пляже валяться надо, как я | |
19
- 28.06.2013 - 10:08
|
16-USSR > Вообще-то, как ни странно, разделение операций имеет смысл быть ;) Дело в том, что удаление движений затрагивает одну группу таблиц БД, удаление же самого тела объекта вместе с табличными частями - совсем другую. Особенно, если это удаление производить правильно - с проверкой на ссылки. Замечу еще, что удаление движений требует одних полномочий, а удаление объектов - других, более мягких. | |
20
- 28.06.2013 - 10:10
|
лежу на пляжу и работаю с этой гадостью | |
21
- 28.06.2013 - 10:24
| 16-USSR > видимо, позабыл я совсем 7.7 | |
22
- 28.06.2013 - 10:28
|
хотя видел , и не раз , движения у не проведенного или даже помеченного на удаление документа (бывает и движения совсем без документа встречаются), но это скорее исключение, чем правило ЗЫ кстати посмотреть есть ли движения у не проведенного документа оч просто, открываем движения у проведенного , и не закрывая окна курсор на непроведенный, еси они тама есть то покажет ;)) ЗЫЫ чот занастальгировал об экспериментах | |
23
- 28.06.2013 - 10:33
| во-во и я встречал, и кажется после непосредственного удаления... если чё - база была скульная | |
24
- 28.06.2013 - 10:35
| (19)смысл может и есть, но реально затруднительно сказать в чем. Думаю, что 1с просто сама последовательно отменяет проведение, а затем помечает на удаление документ в журнале, в таблицах DH и DT (шапка и табличная часть). Замечу, что именно помечает, то есть физического удаления на уровне таблиц нет. То есть, если ничего не делалось, то можно даже восстановить после непосредственного удаления в 1с. А при пометке документа на удаление помечается лишь поле ISMARK | |
25
- 28.06.2013 - 10:36
|
можно вообще разделить на : 1)снятие с проведения, транзакцией играть 20-100 документов 2)пометку на удаление 3)удаление помеченных штатными средствами | |
26
- 28.06.2013 - 10:36
| (23) это как бэээ исключения , так как в скуле в признаке проведения может стоять и не то число которое в дбф , 5-ка например, так что это все мелочи ;)) а движения отдельно отлавливаются так же - на раз | |
27
- 28.06.2013 - 10:36
| (22)я встречал несколько раз, но видимо это были какие то сбои. В 1С и не такое вcтретишь ) | |
28
- 28.06.2013 - 10:38
|
для проводок я, помнится, вот этим пользовался http://www.1csql.ru/materials/articl...6-308a005bbd6b | |
29
- 28.06.2013 - 10:40
|
(20)транзакция по 20 документов имеет очень мало смысла. Удаление помеченных штатными средствами тоже та еще песня, и удалить может то, что и не надо было. Хотя уже это не так критично, раз нет ссылок Короче, эта тема уже мусолилась на 1000 раз в темах свертки базы, помню один Гуру даже целый трактат написал. Забыл я его фамилию ) | |
30
- 28.06.2013 - 10:52
|
(27) я такое кхмм видел , когда сам скуль вальнул ЗЫ скульная 1С , 20-ый релиз , в базе проводились документы , и одновременно по этим же документам были запросы из ентерпрайса,аксесса и екселя и самой 1С ;)) | |
31
- 28.06.2013 - 12:06
|
Зачем документы так кучно удалять? Обрезка базы или умный юзер хочет грохнуть документы в базе незаметно? | |
32
- 28.06.2013 - 18:27
|
хм, все документы удалить значит... и все движения по регистрам, видимо есть мега извращённый способ - удалить объекты метаданных в конфигураторе (видимо кроме справочников), сохраниться и обновиться на полный мдшник. мегаизвращённый - потому что хрен удалишь так просто. | |
33
- 29.06.2013 - 15:54
| (19) при программном распроведении - пофиг на полномочия..? | |
34
- 29.06.2013 - 15:55
| (22) а не было ли при этом УРБД? | |
35
- 01.07.2013 - 06:54
|
20 - какое лето, +13 http://weather.nsu.ru/ | |
| Интернет-форум Краснодарского края и Краснодара |