Имя: Пароль:
1C
1C 7.7
v7: ДБФ, Быстрое обновление регистров
0 Aristo
 
01.08.11
12:43
Мне в самом большом регистре нужно поменять значение измерения с "Документ определенного вида" на "Документ".
Пересчет регистров занимает более чем сутки (не дождался еще).
Есть какие - либо способы быстрее пересчитать регистр?
База ДБФ.
1 Mikeware
 
01.08.11
12:44
клиппер/фокспро.
в конце концов, сама же 1С
2 Aristo
 
01.08.11
12:49
(1) можно примерную последовательность действий
3 Mikeware
 
01.08.11
12:50
1.взять инструмент
2. сделать.
3. переиндексировать регистр.
4 Андрей_Андреич
 
naïve
01.08.11
12:51
Загрузить в скуль
5 Ёпрст
 
01.08.11
12:51
(0) Зачем ?
6 Ёпрст
 
01.08.11
12:52
а так, можно и прямым запросом проапдейтить табличку движений, потом на чистой базе с этим регистром создать табличку итогов.
7 Mikeware
 
01.08.11
12:53
(6) сказано же - регистр большой. Надо сделать еще больше :-)
8 Ёпрст
 
01.08.11
12:54
заёмет на всё меньше часа.
9 Mikeware
 
01.08.11
12:54
(6) кстати, можно и в итогах тоже проапдейтить...
10 Ёпрст
 
01.08.11
12:55
(9) да, так даже быстрее будет.
че-то не подумал.
11 Ёпрст
 
01.08.11
12:56
тогда минут 5 на всё..
:)
12 Ёпрст
 
01.08.11
12:56
+11 разве что реиндекс на пустой базе сделать.. еще 2 минуты.
13 Aristo
 
01.08.11
13:03
(9), (12) В целом понял так:
нужно в таблице движений и итогов увеличить колонку документа с 9 на 13 символов, затем перенести в пустую базу, переиндексировать там. Там же предварительно переделать MD (изменить значение измерения), пересоздать DD.

Если все правильно понял - каким инструментом можно колонки поменять (или запросом) ? я говоря откровенно, это ни разу не делал, как - то все больше в скуле до этого.
14 Mikeware
 
01.08.11
13:08
(13) любым инструментом, которым можно работать с дбф. Клиппер/фокспро/1С/аксессом
можно импортировать в SQL, трансформировать, и выплюнуть обратно.
Можно и в md/dd руками подправить...
15 VoditelKobyly
 
01.08.11
13:10
(13) Тогда возьми из скуля инструмент DTS.
Только лучше ещё раз подумай, а надо ли это делать.
Может проще завести новый регистр?
16 Ёпрст
 
01.08.11
13:16
(13) из любой базы делаешь
ALTER TABLE полный путь к табличке\RA<нужный номер> ALTER COLUMN <имя измерения> char(13);

далее update set <имя измерения> = $ВидДокумента.ТвоёКакоеБыло+Left(<имя измерения>,9)

и аналогично с Rg.. всё собственно
17 aka MIK
 
01.08.11
13:16
Может попробуем разобраться почему так долго пересчитывается, и что именно? У меня такая же фигня была, пришлось пойти по пути упрощения учета )
18 Ёпрст
 
01.08.11
13:19
+16 только не помню уже, в дбф нужно ВидДокумента36 делать.
19 Ёпрст
 
01.08.11
13:20
+18 ну и ветку from в последний запрос.
20 VoditelKobyly
 
01.08.11
13:26
(16) А что ALTER TABLE фокспрошным драйвером поддерживается?
21 Ёпрст
 
01.08.11
13:27
ну, примерно такое выполни в пустой базе с тем же мд, что и в рабочей:

ALTER TABLE D:\Base\RA123 ALTER COLUMN SP123 char(13);
update D:\Base\RA123
set SP123  = $ВидДокумента.ТвоёКакоеБыло+Left(SP123,9);

ALTER TABLE D:\Base\RG123 ALTER COLUMN SP123 char(13);
update D:\Base\RG123
set SP123  = $ВидДокумента.ТвоёКакоеБыло+Left(SP123,9);

ну и переиндексируй потом (в той же сторонней чистой базе, закинув туда 2 эти таблички)

имена  и пути свои подставишь.
22 Ёпрст
 
01.08.11
13:27
(20) еще как!
:)
23 VoditelKobyly
 
01.08.11
13:29
(22) Скажи версию драйвера, которую используешь. У меня вроде ошибку выдавало. Но что-то похоже уже тебе верю больше чем себе. Надо будет попробовать снова.
24 Ёпрст
 
01.08.11
13:30
(23) 9.2
25 Ёпрст
 
01.08.11
13:32
(23) я ж проверил..работает :)
26 Ёпрст
 
01.08.11
13:34
http://www.microsoft.com/download/en/details.aspx?id=14839
этот что ли стоит, на помню.. от 9 фокса
27 VoditelKobyly
 
01.08.11
13:35
(25). Так это в корне меняет дело! Щас под рукой нет, но у меня вроде 9.1 был.
28 Aristo
 
01.08.11
13:36
(21) все понял только не right ли там вместо left?
29 Ёпрст
 
01.08.11
13:42
(28) нет. поле "вправо" расширится.
И это, делай так лучше - копиряешь RG и RA этого регистра + мд + дд в отдельную папку, делаешь запрос из (21) в рабочей базе, пути указываешь к RA и RG те, что в новой папке, далее
переиндексируешься из новой базы, созданной из новой папки и копиряешь Ra и RG этого регистра взад вместе с новыми индексными файлами.. наслаждаешься.
30 Ёпрст
 
01.08.11
13:43
+29 ну и на всякий, старые RG и RA сохраняешь.. на память.
31 Ёпрст
 
01.08.11
13:44
+29 и не забудь в мд и дд обновить, тупо сделав это в новой папке, предварительно выкинув оттуда все регистры (включая вновь созданные)
32 Aristo
 
01.08.11
13:45
(31) да я 2 копии полные сделаю, вопрос 5 минут.
33 Ёпрст
 
01.08.11
13:47
(32) дело не в копии, нужно в пустой базе поиметь измененный мд и дд, чтоб их потом подменить в рабочей.
34 Ёпрст
 
01.08.11
13:48
+33 а на пустой базе процесс реструктуризации займет меньше секунды.
35 Mikeware
 
01.08.11
13:48
(33) разобрать-собрать
36 Aristo
 
01.08.11
13:51
(32) это я понимаю. уже делаю
37 Ёпрст
 
01.08.11
13:51
(35) даже не знаю, что быстрее будет :)
Еще ж и словарик тогда в 2-х местах блокнотом править..
а тут пофигуратор всё сам сделает.
:)
38 Aristo
 
01.08.11
14:01
(37) я не лезу в блокнот в DD, выгода времени - копеечная даже если будет. Проигрыш если косякнул - больше.
39 Aristo
 
01.08.11
14:03
Все ок, всем спасибо :)