|   |   | 
| 
 | v7: Про свертку базы | ☑ | ||
|---|---|---|---|---|
| 0
    
        shegy 28.11.11✎ 10:25 | 
        Народ, утро доброе, подскажите пож.
  Сделал светрку базы, делал методом, ввод первоночальных остатков + удаление старых документов. Приэтом база стала весить так же, а может чуть больше, в данный момент пытаюсь открыть период, он начинает обрабатывать документы с начала базы и очень долго, что сдела не так, что можно сделать в этом случае. Заранее спасибо за помощь! | |||
| 1
    
        povar 28.11.11✎ 10:26 | 
        и как вы удалили документы ?     | |||
| 2
    
        VladZ 28.11.11✎ 10:26 | 
        SQL? DBF?     | |||
| 3
    
        Морозов Александр 28.11.11✎ 10:27 | 
        надо сжать базу... через конфигуратор     | |||
| 4
    
        shegy 28.11.11✎ 10:27 | 
        база dbf, удалял при помощи Док.Удалить(1)     | |||
| 5
    
        shegy 28.11.11✎ 10:28 | 
        (3) енто как?     | |||
| 6
    
        Морозов Александр 28.11.11✎ 10:29 | 
        (5) Ну заходишь в конфугатор... а там в Тестировании и исправлении есть сжатие     | |||
| 7
    
        shegy 28.11.11✎ 10:29 | 
        должно быть все гду после этого?     | |||
| 8
    
        Морозов Александр 28.11.11✎ 10:30 | 
        (7) Угу... только потом удаленное уже восстановить нельзя     | |||
| 9
    
        shegy 28.11.11✎ 10:31 | 
        я понял, вечером буду пробовать, спасибо!     | |||
| 10
    
        1Сергей 28.11.11✎ 10:35 | 
        (9) ты это... про бэкапы не забывай, да     | |||
| 11
    
        Aleksey 28.11.11✎ 10:38 | 
        А я бы еще табличку с итогами удалил бы. И пересчет итогов бы сделал     | |||
| 12
    
        andrewks 28.11.11✎ 10:39 | 
        лучше всего выгрузить-загнрузить     | |||
| 13
    
        shegy 28.11.11✎ 10:51 | 
        Народ, а подскажите пож., можно ли грохнуть документы не при помощи Док.Удалить(1), а каким-нибудь запрос 1с++?     | |||
| 14
    
        shegy 28.11.11✎ 10:51 | 
        +(13) а то документы за 3 года 2 дня удаляются     | |||
| 15
    
        Ёпрст гуру 28.11.11✎ 10:52 | 
        (13) нужно     | |||
| 16
    
        shegy 28.11.11✎ 10:53 | 
        (15) не подскажите как сделать?     | |||
| 17
    
        shegy 28.11.11✎ 10:53 | 
        может есть какая-нибудь наработка?     | |||
| 18
    
        Ёпрст гуру 28.11.11✎ 10:56 | 
        (16) delete from 1sjourn where date<:ВыбДата~~ или позиция дока
  аналогично delete DT\DH\RG\RA\1crdoc\1sconst + табличка партий\цен номенклатуры | |||
| 19
    
        shegy 28.11.11✎ 11:00 | 
        а нету готовой обработки, честно, я все еще толком не разберался с 1с++, хотелось бы глянуть, что к чему на примере и еще вопросик, как долго будет происходить удаление документов?     | |||
| 20
    
        Джордж1 28.11.11✎ 11:00 | 
        (14)удаляй в транзакции + мути с ТА
  // бухия вообще без проблем штатными методами режется | |||
| 21
    
        Ёпрст гуру 28.11.11✎ 11:09 | 
        (19) мгновенно.     | |||
| 22
    
        shegy 30.11.11✎ 13:50 | 
        (18) Подскажите пож. что не так делаю, пишу запрос
  ЗагрузитьВнешнююКомпоненту("1cpp.dll"); Соединение = СоздатьОбъект("OLEDBData"); // СтрокаСоединения = "Provider=VFPOLEDB.1;Null=Yes;Exclusive=No;Data Source=" + КаталогИБ() + ";Mode=ReadWrite;Extended Properties="""";User ID="""";Password="""";Mask Password=False;Collating Sequence=MACHINE;DSN="""";"; Соединение.Соединение(СтрокаСоединения); // ТекстЗапроса = "delete from 1sjourn where date<:НаДату~~"; Запрос = Соединение.СоздатьКоманду(); Запрос.Выполнить(ТекстЗапроса); В итоге получаю ошибку Запрос.Выполнить(ТекстЗапроса); {D:\ХЛАМ\DB_DEL_SPR\EXTFORMS\УДАЛИТЬДОКИ.ERT(12)}: Meta name parser error: не указан параметр ":НаДату" Что не так делаю??? НаДату-реквизит на форме | |||
| 23
    
        1nf 30.11.11✎ 13:55 | 
        ну дык надо наверно текст запроса с передачей параметра правильно написать     | |||
| 24
    
        Ёпрст гуру 30.11.11✎ 14:00 | 
        (22) установитьТекстовыйПараметр нужно вестимо + сперва удалить данные с DT и DH этих документов и потом ужо, чистить 1sjourn
  + очистить RG и RA регистров | |||
| 25
    
        shegy 30.11.11✎ 14:00 | 
        (23) а что не правильно написал?     | |||
| 26
    
        Ёпрст гуру 30.11.11✎ 14:00 | 
        + очистить 1scrdoc от подчиненных доков + 1sconst от периодики     | |||
| 27
    
        FN 30.11.11✎ 14:00 | 
        (22) не парь себе мозг. Перед удалением УстановитьТА(Дата(2000,01,01))
  А удаление в транзакциях типа: сч=1; НачатьТранзакцию() Пока ... Цикл док.Удалить(1) Если сч%200=0 тогда ЗафиксироватьТранзакцию(); НачатьТранзакцию(); КонецЕсли; КонецЦикла; ЗафиксироватьТранзакцию(); -получишь приемлемое время удаленияч документов | |||
| 28
    
        shegy 30.11.11✎ 14:01 | 
        Уважаемый Ёпрст3, если не затруднит, расскажите как это все сделать, читаю примеры и не чего толком пока не понял     | |||
| 29
    
        FN 30.11.11✎ 14:02 | 
        (27) + забыл сч=сч+1; в цикл пихнуть     | |||
| 30
    
        shegy 30.11.11✎ 14:03 | 
        (27) Сколько времени займет удаление данных, день два?     | |||
| 31
    
        Ёпрст гуру 30.11.11✎ 14:04 | 
        (28) для начала, читать про структуру хранения ИБ.. хотя бы на скрипт-коддинге, чтоб понять, что и в каких табличках храниться, потом ужо, творить свои запросы.     | |||
| 32
    
        FN 30.11.11✎ 14:04 | 
        раз в десять быстрее, чем "стандартным" способом. А час/день/неделя - зависит от скорости компа и объема данных.     | |||
| 33
    
        1nf 30.11.11✎ 14:09 | 
        (25) а как можно понять из строки "delete from 1sjourn where date<:НаДату~~" значение параметра НаДату?     | |||
| 34
    
        shegy 30.11.11✎ 14:14 | 
        (32) т.е. получается, просто удаление в транзакции делать и все?     | |||
| 35
    
        Ёпрст гуру 30.11.11✎ 14:16 | 
        (34) если знаний и желания не хватает для изучения прямых запросов, то делай в транзакции.     | |||
| 36
    
        Dmitrith 30.11.11✎ 14:18 | 
        Удалите тупо dbf-ы документов, регистров и итогов. Потом загрузите в получившуюся базу остатки. Я так уже несколько лет делаю. Свертка занимает пару часов     | |||
| 37
    
        Ёпрст гуру 30.11.11✎ 14:20 | 
        (36) если нужно только конкретный период свернуть, что удалять будешь ?
  :) | |||
| 38
    
        Dmitrith 30.11.11✎ 14:21 | 
        (37) Ну тогда да.
  Я просто раз в год режу базу. проблем никаких. | |||
| 39
    
        Ёпрст гуру 30.11.11✎ 14:23 | 
        (38) А если нужна аналитика по кредДокументам\Партиям ?
  И т.д ? :))) Тупо удалять всё - это моветон. | |||
| 40
    
        Dmitrith 30.11.11✎ 14:24 | 
        (39) П партиям мне не нужна - сворачиваю в одну партию. По дебиторке каждый долг выгружаю в отдельный документ. В разрезе торговых представителей и накладных.     | |||
| 41
    
        shegy 30.11.11✎ 14:24 | 
        (35) знаний пока не хватает, желание изучать есть, но как обычно не хватает времени     | |||
| 42
    
        shegy 30.11.11✎ 14:25 | 
        (36) проблема в том, что надо оставить документы с 2010, до этой даты надо удалить     | |||
| 43
    
        shegy 30.11.11✎ 14:26 | 
        (27) я только одного не понял, на кой надо устанавливать ТА     | |||
| 44
    
        FN 30.11.11✎ 14:30 | 
        (43) Удаление дока задним числом = проводка дока задним числом.
  Тоесть если ты удалишь документ, которым оприходован например автомобиль в 2007 году, и который был продан в 2010 то при удалении 1С-ка удалит строку из таблички движений регистра и удалит строки(!) из табличики итогов - а итоги хранятся (обычно) в разрезе месяцев - тоесть удалить нужно в 36 месяцах. И так каждый документ... | |||
| 45
    
        Ёпрст гуру 30.11.11✎ 14:30 | 
        (43) чтоб не толкать итоги каждый раз при удалении документа. Це же очевидно.     | |||
| 46
    
        Dmitrith 30.11.11✎ 14:30 | 
        (43) Чтоб после каждого удаления документа регистры не пересчитывались в актуальное значение     | |||
| 47
    
        Ёпрст гуру 30.11.11✎ 14:32 | 
        (40) 
  >>> В разрезе торговых представителей и накладных. Это как ? В табличной части такого дока что ? Что пишется в кредДокумент в регистре Покупатели\Поставщики, к примеру ? | |||
| 48
    
        shegy 30.11.11✎ 15:07 | 
        Т.е. точку актуальности мне надо перенести на начало базы?     | |||
| 49
    
        shegy 30.11.11✎ 15:10 | 
        а почему деление на 200 идет?     | |||
| 50
    
        FN 30.11.11✎ 15:29 | 
        (48)да
  (49)по 200 доков в транзакции. можешь подобрать другое число. | |||
| 51
    
        ЧеловекДуши 30.11.11✎ 15:40 | 
        (49)Через каждые 200 удаленных документов фиксируется транзакция.
  Если это делать чаще, то скорость будет ниже. Если не делать, то просто 1С переполнится и лопнит с месагой Оут оф мемори :) | |||
| 52
    
        ЧеловекДуши 30.11.11✎ 15:41 | 
        А не проще вообще создать новую БД и перенести туда нужные справочники :)     | |||
| 53
    
        ЧеловекДуши 30.11.11✎ 15:41 | 
        + остатки     | |||
| 54
    
        Ёпрст гуру 30.11.11✎ 15:55 | 
        (52,53) нет, см (37).     | |||
| 55
    
        shegy 30.11.11✎ 17:52 | 
        Все понял, сегодня буду пробывать     | |||
| 56
    
        shegy 01.12.11✎ 09:57 | 
        Доки убил, времери ушло максимум часа 2, теперь остался вопрос, сколько он будет период открывать?     | |||
| 57
    
        Mihenius 01.12.11✎ 10:36 | ||||
| 58
    
        Mihenius 01.12.11✎ 10:39 | 
        Не забудь сделать подготовку базы перед сверткой.
  Не должно быть документов с основанием в закрытом периоде (или такие основания должны оставаться, но быть непроведенными) Не должно быть периодики по документами в закрытом периоде (меняем на обычные значения без документов) | |||
| 59
    
        shegy 07.12.11✎ 12:47 | 
        Всем привет, опять наткунулся на подводные камни, в общем-то базу срезал, вроде было все гуд, но есть один момент, когда народ проводит новые документы Реализация ТМЦ, по регистру взаиморасчетов разносятся битые ссылки, что с этим делать и как побороть.
  Заранее спасибо! | |||
| 60
    
        Эльниньо 07.12.11✎ 13:27 | 
        (59) По какому измерению?     | |||
| 61
    
        shegy 07.12.11✎ 14:38 | 
        КредДокумент, попробывал перепровести документ в ручную, выплевывает битые ссылки заменяя их на ВводОстатков, после попробывал автоматом, большой объем ему приходится перепроводить, как можно пошустрей все это сделать?     | |||
| 62
    
        Ёпрст гуру 07.12.11✎ 14:40 | 
        (61)Нехрен было прибивать всё наподряд.
  Теперь у тебя проёб@на аналитика по взаиморасчетам в разрезе кредДоков и аналитика по партиям. Если она не нужна - в документах ввода останков в креддок запихай ссылку на документ ввода останков | |||
| 63
    
        PZh 07.12.11✎ 14:45 | 
        Ну вы тут насоветовали...
  Походу раскорячит парень базу в хлам. | |||
| 64
    
        shegy 07.12.11✎ 14:46 | 
        (63) в хлам не буду     | |||
| 65
    
        shegy 07.12.11✎ 14:48 | 
        (62) да каюсь, натворил делов, не подумав. В воде остатков и так ссылка на ввод остатков     | |||
| 66
    
        shegy 07.12.11✎ 14:51 | 
        пересчет итогов мне поможет?     | |||
| 67
    
        Эльниньо 07.12.11✎ 17:46 | 
        (66) Нет     | |||
| 68
    
        Ёпрст гуру 07.12.11✎ 17:47 | 
        (65) где ? в КредДокументе ?     | |||
| 69
    
        Ёпрст гуру 07.12.11✎ 17:47 | 
        в обоих регистрах ?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |