| 
    
            
         
         | 
    
  | 
мУдалятьДвижения 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) может и надо считать, смотря откуда набор     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |