|
мУдалятьДвижения VS Удалять автоматически при отмене проведения | ☑ | ||
---|---|---|---|---|
0
vashkovich
17.05.13
✎
15:20
|
Коллеги, подскажите.
Вот такой нюанс. В УПП в обработке проведения стоит вызов процедуры очистки движений Если мУдалятьДвижения Тогда ОбщегоНазначения.УдалитьДвиженияРегистратора(ЭтотОбъект, Отказ, Истина, РежимПроведения); КонецЕсли; В документе стоит режим удаления движений "Удалять автоматически при отмене проведения" Стоит ли очищать движения программно если они и так очистятся на уровне платформы? |
|||
1
Maxus43
17.05.13
✎
15:22
|
При перепроведении очищать же надо тоже, потому и программно
|
|||
2
vashkovich
17.05.13
✎
15:25
|
даже если поставить режим "Удалять автоматически"?
|
|||
3
Maxus43
17.05.13
✎
15:25
|
(2) если поставить удалять автоматически - то да, программно чистить не надо
|
|||
4
Maxus43
17.05.13
✎
15:26
|
Но этого делать не стоит
|
|||
5
vashkovich
17.05.13
✎
15:26
|
Ок, спасибо.
|
|||
6
vashkovich
17.05.13
✎
15:27
|
(4) почему же? программно слишком долго - до 30% всего времени перепроведения.
|
|||
7
Maxus43
17.05.13
✎
15:29
|
(6) а автоматически сколько, ты замерял? замер этого не покажет.
Там суть такая - он очищает только регистры, по которым движения есть, а не у всех регистров, что делает автоматическое удаление, ЕМНИП. |
|||
8
vashkovich
17.05.13
✎
15:35
|
проверял по журналу.
Запустил 20 документов и по каждому проверил когда началась транзакция и когда закончилась. Реально проверить все ли регистры очистились конечно не могу, поэтому и возник вопрос. Посмотрел движения с учетом кода очистки и сравнил с движениями с отключенным кодом очистки - они полностью совпали. Но как сомнения остались. |
|||
9
hhhh
17.05.13
✎
15:35
|
(6) там такая штука, если очищать пустой набор движений регистра, регистр целиком блокируется для других пользователей. Поэтому пишут программу, чтобы очищать только непустые.
|
|||
10
hhhh
17.05.13
✎
15:37
|
(9)+ но сейчас новая фишка появилась, можешь посмотреть в БП, есть список регистров, которые очищаются, их несколько штук,а остальные не трогают.
|
|||
11
vashkovich
17.05.13
✎
15:42
|
(9) !!! спасибо за подсказку про пустой набор.
вставлю проверку на количество и если пустое то набор не буду очищать. (10) обязательно гляну |
|||
12
Maxus43
17.05.13
✎
15:47
|
(11) >>вставлю проверку на количество и если пустое то набор не буду очищать
дак программное удаление так и работает, куда вставлять собрался? |
|||
13
Sammo
17.05.13
✎
15:54
|
Не уверен, но может быть еще 1 причина - запись в режиме обменДанными.Загрузка = Истина.
|
|||
14
Reaper_1c
17.05.13
✎
15:57
|
Причина - вылет клиент-серверных баз при работе с MS SQL из-за участия более чем 256 таблиц в одном запросе.
|
|||
15
vashkovich
17.05.13
✎
15:59
|
Забыл в самом начале уточнить, что все проблемы в SQL версии.
на файловой версии таких проблем нет. Набор.Отбор.Регистратор.Установить(Регистратор); //++++ Если Набор.Количество()<>0 Тогда Набор.Записать(); КонецЕсли; //**** //вместо вот этого: Набор.Записать(); |
|||
16
Maxus43
17.05.13
✎
16:14
|
(15) набор.Прочитать() ещё, а то там всегда 0 будет.
и не ответил на (12) |
|||
17
vashkovich
17.05.13
✎
16:22
|
(16) так пост (15) это и есть ответ на (12)
за напоминание спасибо |
|||
18
yukon
17.05.13
✎
17:40
|
(16) > набор.Прочитать() ещё
В результате: > до 30% всего времени перепроведения В типовых же не зря эту проверку через запрос сделали - см. БП 3.0. И ограничение на 256 таблиц тоже учли. |
|||
19
samozvanec
17.05.13
✎
17:43
|
(16) коллекция Движения считана
|
|||
20
samozvanec
17.05.13
✎
17:44
|
+(19) хотя в (15) может и надо считать, смотря откуда набор
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |