Имя: Пароль:
1C
1C 7.7
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
(56) Вот готовый рецепт для бух

http://infostart.ru/public/15114/
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
в обоих регистрах ?