Имя: Пароль:
1C
1C 7.7
v7: Проведение документа по регистрам в SQL базе - механизм
0 Stella0608
 
07.06.13
15:07
Ситуация такая.
Перепровожу старый документ в SQL базе, который делает движения по регистрам.
Сама запись в таблички регистров при обычном, штатном проведении происходит практически моментально.
Теперь сам вопрос - что происходит физически в базе при перепроведении?
То, что меняются таблицы rg по регистрам - понятно.
Интересуют таблицы остатков, а собственно ra.
По идее, если допустим, провести старый документ, по регистрам произойдет пересчет и таблиц остатков.
Так вот, если проводить документ штатными средствами, это происходит быстро. Если делать пересчет итогов по регистру с даты X, база зависает на продолжительное время.
В чем собственно разница?
1 ДенисЧ
 
07.06.13
15:09
d j,]`vf[ lfyys[///
2 ДенисЧ
 
07.06.13
15:09
в смысле в объёмах данных
3 mehfk
 
07.06.13
15:10
Потому что при перепроведении дока итоги пересчитываются только по измененным наборам измерений. При полном пересчете итогов - по всем.
4 Stella0608
 
07.06.13
15:11
Хмм... а можно как-нибудь понять, каким образом происходит пересчет с фильтром по изменениям?
Хочется повторить программно штатный пересчет при движении по документу.
5 toypaul
 
гуру
07.06.13
15:12
(4) понять можно :)
6 Stella0608
 
07.06.13
15:14
Как? Перехватить sql запрос нет возможности - нет доступа к sql серверу.
7 toypaul
 
гуру
07.06.13
15:15
(6) вопрос из области как полететь на луну, если нет космического корабля.
8 ДенисЧ
 
07.06.13
15:16
9 Stella0608
 
07.06.13
15:19
1) Нет доступа на infostart для скачивания обработок;
2) Тем не менее, есть подобная обработка, которая на sql пересчитывает итоги. Однако, если сделать пересчет по выбранному регистру с даты документа, 1с висит минут 15. Если просто провести заново документ - моментально, хотя перезаписываются таблицы по всем регистрам.
10 Stella0608
 
07.06.13
15:22
Скажем так, интересует какие именно действия 1с выполняет по таблицам RA при штатном проведении документа.
При пересчете итогов по регистру происходит delete с даты документа и последующий insert.
11 ДенисЧ
 
07.06.13
15:23
(10) Лучше всего тебе получить доступ к скулю...
А ещё лучше - взять dds файл. Там есть тексты хранимых процедур
12 Mikeware
 
07.06.13
15:24
(6) посмотри на хранимку, которую вызывает  при проведении (они в DDS лежат)
(9) да вроде по-русски объяснили в (3)..
13 Stella0608
 
07.06.13
15:25
К скулю нереально, политика... dds гляну, спасибо :).
14 Mikeware
 
07.06.13
15:26
(10) итоги удаляются хранимками ClearRecalcDocAct, новые пишутся WriteDocAct - с ближайшего верхнего итога до итогов точки актуальности
15 mikecool
 
07.06.13
15:27
какая красавица и программистка, просто чудо!
16 ДенисЧ
 
07.06.13
15:28
(15) вот я думаю... Что-то тут не чисто...
17 Mikeware
 
07.06.13
15:29
(16) а ты вспомни, кто в "понедельнике" была Стелла :-)))
18 mehfk
 
07.06.13
15:32
"К скулю нереально, политика"
Расшифровка 1Cv7.DBA с использованием 1C++
19 Stella0608
 
07.06.13
15:39
Логин-пароль к SQL выдрать не проблема, самого энтерпрайза нету. Только голый 1С.
20 Mikeware
 
07.06.13
15:40
(19) 1cQA
21 varelchik
 
07.06.13
16:41
(20)+100 раз уж 1С++ есть.