| 
    
        
     
     | 
    
    
  | 
Пропали движения документов | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        MadHead    
     16.05.12 
            ✎
    13:43 
 | 
         
        У нас в ночное время перепрововдятся документы (обработкой не восстановлением последовательности) в фоновом задании. И в момент перепроведения была запущена другая обработка которая перепроводит документы (документы в 1 и 2-й обработке не пересекаются) после чего у некоторых документов пропали движения. Если єти документы перепровести руками то движения появляются. Нормально ли такое поведение системы или причина в другом?     
         | 
|||
| 
    1
    
        DrShad    
     16.05.12 
            ✎
    13:44 
 | 
         
        все норм     
         | 
|||
| 
    2
    
        Лоботряс    
     16.05.12 
            ✎
    13:47 
 | 
         
        Была такая же фигня, весь косяк был в криво написанной процедуре проведения.     
         | 
|||
| 
    3
    
        Лоботряс    
     16.05.12 
            ✎
    13:47 
 | 
         
        ИМХО обработка тут непричем     
         | 
|||
| 
    4
    
        DrShad    
     16.05.12 
            ✎
    13:48 
 | 
         
        да вот как раз обработка и причем     
         | 
|||
| 
    5
    
        Лоботряс    
     16.05.12 
            ✎
    13:50 
 | 
         
        (4) ну так освети своим знанием мою темную душу     
         | 
|||
| 
    6
    
        spu79    
     16.05.12 
            ✎
    13:51 
 | 
         
        блокировки регистров?     
         | 
|||
| 
    7
    
        MadHead    
     16.05.12 
            ✎
    13:52 
 | 
         
        (6) Блокировки вероятнее всего были.     
         | 
|||
| 
    8
    
        MadHead    
     16.05.12 
            ✎
    13:53 
 | 
         
        Фоновое задание при блокировках ведет себя непредсказуемо? почему не откатывается транзакция?     
         | 
|||
| 
    9
    
        spu79    
     16.05.12 
            ✎
    13:54 
 | 
         
        документы разные, а в проведении регистры одинаковые и "кто раньше встал, того и тапки"     
         | 
|||
| 
    10
    
        MadHead    
     16.05.12 
            ✎
    13:57 
 | 
         
        (9) Я согласен, но документ был проведен и у него были проводки, после перепроведения (возможно блокировки) у документа пропадают проводки и документ остается проведенным. Вот это настораживает. Может ли так произойти, если в пользовательском режиме у 2-х пользователей будут перепроводится некоторые документы     
         | 
|||
| 
    11
    
        spu79    
     16.05.12 
            ✎
    14:05 
 | 
         
        // Вначале сторнируем
  
        ТаблицаДвижений = НаборДвижений.Выгрузить(); ТаблицаДвижений.Очистить(); // Заполним таблицу движений. ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(КопияТаблицыТоваров, ТаблицаДвижений);  | 
|||
| 
    12
    
        spu79    
     16.05.12 
            ✎
    14:05 
 | 
         
        первый попавшейся пример проведения     
         | 
|||
| 
    13
    
        MadHead    
     16.05.12 
            ✎
    15:17 
 | 
         
        (12) я верю что такое в коде можно сделать, мне интересно возможно ли такое поведение системі при условии что в коде все нормально. Просто этот механизм работал уже год без единого сбоя.     
         | 
|||
| 
    14
    
        spu79    
     16.05.12 
            ✎
    15:21 
 | 
         
        (13) ты/вы не понял. пример - это не можно сделать! А пример кода Типовой конфигурации УПП 1.3.25.1 док Авансовый отчет (первый в списке). А то что год работал...ну звезды так сошлись. Контролируйте время запуска этих обработок (фоновых заданий).     
         | 
|||
| 
    15
    
        MadHead    
     16.05.12 
            ✎
    15:38 
 | 
         
        (14) Можно на ты. Выходит если 2 пользователя одновременно перепроводят документы которые попадают в блокировку, то у документов могут пропасть движения, а документ останется  проведенным?     
         | 
|||
| 
    16
    
        MadHead    
     16.05.12 
            ✎
    15:38 
 | 
         
        Предположим пользователи делают перепроведение документа программно     
         | 
|||
| 
    17
    
        spu79    
     16.05.12 
            ✎
    15:44 
 | 
         
        вот эта строка ТаблицаДвижений.Очистить(); срабатывает, а когда доходит до ТаблицаДвижений.Добавить() срабатывает блокировка => движения пропали, статус документа - проведен. 2 разных документа в один момент времени (секунда) пытаются добавить движение, кто первый захватил регистр, тот проведен с движением, второй - курит.     
         | 
|||
| 
    18
    
        MadHead    
     16.05.12 
            ✎
    15:49 
 | 
         
        Дык обработка проведения проходит в транзакции и при конфликте блокировок она должна откатится     
         | 
|||
| 
    19
    
        hhhh    
     16.05.12 
            ✎
    15:52 
 | 
         
        (15) ну если логически подумать, даже без блокировок, ты пришел с утра, поменял документ, провел, у тебя записались движения. После обеда другой чувак открыл документ, изменил и провел.
  
        Вечером ты открываешь документ - твои движения пропали. То есть это обычная ситуация, если пользователи тупые.  | 
|||
| 
    20
    
        MadHead    
     16.05.12 
            ✎
    16:00 
 | 
         
        (19) Вопросы у меня возникают, если ошибка блокировок возникате почему не откатывается транзакция обработки проведения     
         | 
|||
| 
    21
    
        spu79    
     16.05.12 
            ✎
    16:13 
 | 
         
        "Возможные проблемы при многопользовательском доступе к одним и тем же данным
  
        Работа в многопользовательской среде требует соблюдения определенного компромисса между требованиями предсказуемости, целостности и непротиворечивости данных информационной базы и требованиями параллельности работы. Как известно, при одновременном чтении и изменении одних и тех же данных конкурирующими транзакциями могут возникнуть следующие проблемы одновременного доступа: * Проблема потерянного изменения (англ. The Lost Update Problem) - если две транзакции изменяют одни и те же данные, взяв в качестве первоисточника начальное значение этих данных, то в системе останутся изменения внесенные той транзакцией, которая записала свои изменения последней, поскольку эти изменения заменят собой все изменения, внесенные до этого."  | 
|||
| 
    22
    
        spu79    
     16.05.12 
            ✎
    16:13 
 | 
         
        взял здесь http://1cexpo.ru/informacziya/27-blokirovki-dannyx-v-1spredpriyatii-8.html
  
        очень подробно про блокировки, кури на здоровье  | 
|||
| 
    23
    
        MadHead    
     16.05.12 
            ✎
    17:05 
 | 
         
        (22) спасибо почитал. Єксперементальным путем выяснили, что даннаое поведение системы наблюдается при конфликтах блокировок в фоновом задании, если проделать те же действия на 2-х толстых клиентах, то транзакции откатываются правильно     
         | 
|||
| 
    24
    
        spu79    
     16.05.12 
            ✎
    17:07 
 | 
         
        (23) я ж с этого и начал (пост 6)     
         | 
|||
| 
    25
    
        MadHead    
     16.05.12 
            ✎
    17:09 
 | 
         
        (24) да, но остается непонятным чем клиент лучше сервера. Ведь и там и там блокировки одинаковые     
         | 
|||
| 
    26
    
        spu79    
     16.05.12 
            ✎
    17:13 
 | 
         
        сам механизм программной (фоновое задание) и ручной (кнопка Ок в доке) обработки данных различаются. в программной обработки возможностей больше (точнее меньше ограничений) и это просто надо учитывать, можно получить "обратный" эффект, как в твоем случае.     
         | 
|||
| 
    27
    
        MadHead    
     16.05.12 
            ✎
    17:16 
 | 
         
        (26) спасибо за разъяснения на будущее буду учитывать     
         | 
|||
| 
    28
    
        spu79    
     16.05.12 
            ✎
    17:31 
 | 
         
        (27) повезло тебе, я в Киеве в крайний раз был в году 92, а то без пива не отвертелся бы)))     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |