|
v7: Как удалить документы из базы | ☑ | ||
---|---|---|---|---|
0
johnnik
06.04.12
✎
21:49
|
Есть типовая конфигурация торговли (с незначительными изменениями, не затрагивающими структуру документов, журналов или регистров). Формат DBF. Нужно из нее удалить ВСЕ документы, а справочники и т.п. объекты - оставить. Встроенной групповой обработкой получается слишком долго, 15-20% документов обработка пометила за полсуток.
Есть ли способ как-то сразу разом все документы убрать. Удалить какой-нибудь файл .dbf, отвечающий за документы или очистить редактором .dbf или еще что-нибудь в этом роде. Вобщем, что-то более быстрое, чем сначала тысячи доков помечать на удаление штатными средствами. P.S. Если написать обработку по непосредственому удалению, она будет все равно работать также медленно? |
|||
1
Guk
06.04.12
✎
21:51
|
ТА двигал или так удалял?...
|
|||
2
opty
06.04.12
✎
21:52
|
Откатить ТА
|
|||
3
opty
06.04.12
✎
21:52
|
Или можно создать новую пустую базу и перенести туда справочники
|
|||
4
Guk
06.04.12
✎
21:53
|
а dbf не трогай. в лучшем случае похеришь периодику, изменяемую документами, в худшем - вообще всю базу пофиксишь...
|
|||
5
opty
06.04.12
✎
21:58
|
Не помню использует ли типовая обработка удаления в ТиС , транзакции , вроде нет , тогда можно минимально дописать , что бы помечала пачкой по несколько сот документов , прирост скорости можно получить приличный
|
|||
6
v4442
06.04.12
✎
22:06
|
Удали dbf файлы документов и регистров, dhxxx, dtxxx, rgxxx, raxxx, потом в конфиграторе делаешь какое нибудь изменение , сохраняешь(чтоб создались файлы. Затем тестирование( с галочкой упаковка ) и готово.
|
|||
7
andrewks
06.04.12
✎
22:54
|
1. Скопировать в новую папку таблицы:
1SUSERS 1SSYSTEM 1SCONST 1SUIDCTL 1SBLOB Все таблицы справочников, кроме ненужных (например, в ТиС это Партии, названия файлов можно узнать в DD-файле), 1Cv7.md, 1Cv7.dd, папку USRDEF 2. Выполнить тестир. и испр. БД (с очисткой неверных ссылок) 3. (опционально) для очистки ненужной периодики (например, в ценах) убрать галку периодичности у нужных реквизитов, сохранить. затем опять поставить. сохранить. 4. выгрузка-загрузка |
|||
8
Злой Бобр
06.04.12
✎
22:55
|
(0) В (6) ответ дан. Вот только если нужна история в справочниках - сначала стандартно перезаписать историю.
|
|||
9
Alize
06.04.12
✎
23:28
|
(7)ему удалить(1) все!документы
тан код на 8 строк. |
|||
10
Alize
06.04.12
✎
23:28
|
(7)ему удалить(1) все!документы
там код на 8 строк. |
|||
11
andrewks
06.04.12
✎
23:30
|
(10) писатель, да?
|
|||
12
Alize
06.04.12
✎
23:35
|
(11)Читай,удалить документы(0)!чукча:-)
|
|||
13
andrewks
06.04.12
✎
23:36
|
(12) давно болеем?
|
|||
16
zxcvb
06.04.12
✎
23:44
|
(13) Она здорова, не видно чтоле... Просто глуповата.
|
|||
17
ТакВотЖе
06.04.12
✎
23:49
|
зато красивая)
|
|||
18
zxcvb
07.04.12
✎
00:00
|
(17) Ага, тебе конечно виднее... По теории и дети будут красивые. Как у Чапека в рассказе...
|
|||
19
AlexNew
07.04.12
✎
00:05
|
(17- 18) Что вы разошлись, медики?
|
|||
20
Эльниньо
07.04.12
✎
10:34
|
На днях 800 000 доков удалил за 2 часа.
1. ТА на 1-й док. 2. удаляем с конца транзакциями по 100 доков Не знаю - повлияло или нет: прямым запросом собрал доки в список и удалял по списку в обратной хронологии |
|||
21
aka AMIGO
07.04.12
✎
10:42
|
Док.СделатьНеПроведенным();
Док.Удалить(1); |
|||
22
Mikeware
07.04.12
✎
10:59
|
(17)(18)
– Дура ты! – Зато красивая. – Кто тебе сказал? – Ты! – И ты поверила? – Конечно! – Ну и дура! – Зато красивая! ... © |
|||
23
Скользящий
07.04.12
✎
11:12
|
http://lada-it.ru/index.php/-1/56-del.html
Третий способ. Только надо обязательно после удаления дбфок сделать ТиИ и выгрузку загрузку. |
|||
24
aka AMIGO
07.04.12
✎
11:14
|
Вернее, так:
Док.СоздатьОбъект("Документ"); Док.ВыбратьДокументы(); Пока Док.ПолучитьДокумент()=1 Цикл Док.СделатьНеПроведенным(); Док.Удалить(1); КонецЦикла; |
|||
25
vde69
07.04.12
✎
11:17
|
удалить файл джорнал, сделать тестирование в режиме удаления крывых ссылок.
минут 20 уйдет |
|||
26
opty
07.04.12
✎
11:31
|
(200) Ага , точно так же делаю , только транзакция на 500 доков , около миллиона доков за 3.5 часа , база скулевая
|
|||
27
opty
07.04.12
✎
11:31
|
(200)---> (20)
|
|||
28
Mikeware
07.04.12
✎
11:34
|
(26) Сделал бы прямым запросом, и не парился.
|
|||
29
opty
07.04.12
✎
11:56
|
(28) Выбираю прямым , а удаляю средствами платформы , как то я настороженно к прямому удалению файлов (если DBF) и записей отношусь .
Здоровый консерватизм , а может и не здоровый :) Но лучше час потерять , хотя если бы удаление занимало как у ТС 20% за пол суток то ... А так и штатными средствами можно достаточно быстро сделать , ну или почти штатными :) |
|||
30
opty
07.04.12
✎
11:59
|
+(29) Причем я не полностью базу очищаю от доков а сворачиваю , доки удаляются за период , причем в периоде удаляются не все а 99.99 % кое какие надо оставить
|
|||
31
Mikeware
07.04.12
✎
12:02
|
(30) алгоритм в (54): Обрезание регистров. Удаление документов: что быстрей ?
|
|||
32
opty
07.04.12
✎
12:08
|
(31) Согласен , так еще быстрей , но и штатными средствами можно сделать ДОСТАТОЧНО быстро
Вот если бы штатными удаление занимало многие часы или десятки часов ... |
|||
33
Mikeware
07.04.12
✎
12:10
|
(32) основной плюс - не скорость, а работа в разделенном режиме...
|
|||
34
opty
07.04.12
✎
12:18
|
(33) И штатными можно в разделенном режиме (теоретически)
Можно удалять непосредственно , с проверкой ссылочной целостности на стадии выборки прямым запросом , или использовать НайтиСылки , предварительно пометив а потом удалять (но так медленно) На практике же даже при работе 24/7 под ежегодную свертку несколько часов монопольки всегда можно выделить , не несколько же суток :) |
|||
35
GreyK
07.04.12
✎
12:27
|
(0) Создать пустую базу и перенести справочники и константы не прдлогать?
|
|||
36
opty
07.04.12
✎
12:44
|
(35) Предлагали ужо :)
|
|||
37
Mikeware
07.04.12
✎
12:57
|
(34) Штатными средствами - будет очень долго, и сильно мешать работе.
на практике - у меня база всегда держится за 37 месяцев, обрезается автоматически, без всяких выделений времени. |
|||
38
opty
07.04.12
✎
13:19
|
(34) Через НайтиСсылки да , очень долго , при непосредственном удалении с предварительным контролем целостности намного быстрее
То есть ты её режешь часто (ежемесячно или может даже чаще) , постоянно сохраняя глубину 3 года + месяц ? Если так то пакет удаления (количество удаляемых доков) у тебя относительно не большой , а вообще подход интересный . При такой большой глубине давности удаляемых документов риски неправильного расчета конечных остатков практически нулевые даже в разделенном режиме . Я режу раз в год , база максимом 15 месяцев к тому времени , зато сразу за 12 месяцев чикаю , перед сверкой база реплицируется в "прошлогоднюю" доступную для просмотра и анализа . На практике в актуальной рабочей базе очень редко нужны данные глубиной более года , нефиг их там хранить и копить В общем способ удаления зависит в конце концов от целей и общего порядка работы с базой :) |
|||
39
Mikeware
07.04.12
✎
14:50
|
(38) Ежемесячно. И если быть точным, не я ее режу, а она сама режется :-))
|
|||
40
Эльниньо
07.04.12
✎
14:58
|
1С-Саморез
|
|||
41
opty
07.04.12
✎
15:07
|
(39) А если скажем потребовались данные пятилетей давности то как ? Бекап поднимаешь ?
Понятно что такое редко нужно , но бывает |
|||
42
johnnik
07.04.12
✎
18:44
|
Всем огромное спасибо за идеи и предложения. Предложение №6 оказалось самым быстрым, удобным и требующим минимальное количество нажатий :) И, главное, своевременным.
v4442 - респект. |
|||
43
Mikeware
07.04.12
✎
20:18
|
(41) а для этого есть база - "только получатель", и в ней данные с 2005 года.
И доступ к ней только у фиников, остальные через обращение к ним (лениво делать "только просмотр") "я давно играю"© :-) |
|||
44
wsxedc83
30.04.12
✎
21:34
|
(43) Реплицируешь средствами скуля? Или база дбф?
|
|||
46
Mikeware
01.05.12
✎
09:31
|
(44) Обычная периферийка, одна из...
а насчет "база дбф" - я с мелкими базенками не работаю :-), у меня сиквельные |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |