|   |   | 
| 
 | 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) Обычная периферийка, одна из... 
  а насчет "база дбф" - я с мелкими базенками не работаю :-), у меня сиквельные | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |