Пропали движения документов #610969


#0 by MadHead
У нас в ночное время перепрововдятся документы (обработкой не восстановлением последовательности) в фоновом задании. И в момент перепроведения была запущена другая обработка которая перепроводит документы (документы в 1 и 2-й обработке не пересекаются) после чего у некоторых документов пропали движения. Если єти документы перепровести руками то движения появляются. Нормально ли такое поведение системы или причина в другом?
#1 by DrShad
все норм
#2 by Лоботряс
Была такая же фигня, весь косяк был в криво написанной процедуре проведения.
#3 by Лоботряс
ИМХО обработка тут непричем
#4 by DrShad
да вот как раз обработка и причем
#5 by Лоботряс
ну так освети своим знанием мою темную душу
#6 by spu79
блокировки регистров?
#7 by MadHead
Блокировки вероятнее всего были.
#8 by MadHead
Фоновое задание при блокировках ведет себя непредсказуемо? почему не откатывается транзакция?
#9 by spu79
документы разные, а в проведении регистры одинаковые и "кто раньше встал, того и тапки"
#10 by MadHead
Я согласен, но документ был проведен и у него были проводки, после перепроведения (возможно блокировки) у документа пропадают проводки и документ остается проведенным. Вот это настораживает. Может ли так произойти, если в пользовательском режиме у 2-х пользователей будут перепроводится некоторые документы
#12 by spu79
первый попавшейся пример проведения
#13 by MadHead
я верю что такое в коде можно сделать, мне интересно возможно ли такое поведение системі при условии что в коде все нормально. Просто этот механизм работал уже год без единого сбоя.
#14 by spu79
ты/вы не понял. пример - это не можно сделать! А пример кода Типовой конфигурации УПП 1.3.25.1 док Авансовый отчет (первый в списке). А то что год работал...ну звезды так сошлись. Контролируйте время запуска этих обработок (фоновых заданий).
#15 by MadHead
Можно на ты. Выходит если 2 пользователя одновременно перепроводят документы которые попадают в блокировку, то у документов могут пропасть движения, а документ останется  проведенным?
#16 by MadHead
Предположим пользователи делают перепроведение документа программно
#17 by spu79
вот эта строка ТаблицаДвижений.Очистить; срабатывает, а когда доходит до ТаблицаДвижений.Добавить срабатывает блокировка => движения пропали, статус документа - проведен. 2 разных документа в один момент времени (секунда) пытаются добавить движение, кто первый захватил регистр, тот проведен с движением, второй - курит.
#18 by MadHead
Дык обработка проведения проходит в транзакции и при конфликте блокировок она должна откатится
#19 by hhhh
ну если логически подумать, даже без блокировок, ты пришел с утра, поменял документ, провел, у тебя записались движения. После обеда другой чувак открыл документ, изменил и провел. Вечером ты открываешь документ - твои движения пропали. То есть это обычная ситуация, если пользователи тупые.
#20 by MadHead
Вопросы у меня возникают, если ошибка блокировок возникате почему не откатывается транзакция обработки проведения
#21 by spu79
"Возможные проблемы при многопользовательском доступе к одним и тем же данным Работа в многопользовательской среде требует соблюдения определенного компромисса между требованиями предсказуемости, целостности и непротиворечивости данных информационной базы и требованиями параллельности работы. Как известно, при одновременном чтении и изменении одних и тех же данных конкурирующими транзакциями могут возникнуть следующие проблемы одновременного доступа:    * Проблема потерянного изменения (англ. The Lost Update Problem) - если две транзакции изменяют одни и те же данные, взяв в качестве первоисточника начальное значение этих данных, то в системе останутся изменения внесенные той транзакцией, которая записала свои изменения последней, поскольку эти изменения заменят собой все изменения, внесенные до этого."
#22 by spu79
взял здесь очень подробно про блокировки, кури на здоровье
#23 by MadHead
спасибо почитал. Єксперементальным путем выяснили, что даннаое поведение системы наблюдается при конфликтах блокировок в фоновом задании, если проделать те же действия на 2-х толстых клиентах, то транзакции откатываются правильно
#24 by spu79
я ж с этого и начал (пост 6)
#25 by MadHead
да, но остается непонятным чем клиент лучше сервера. Ведь и там и там блокировки одинаковые
#26 by spu79
сам механизм программной (фоновое задание) и ручной (кнопка Ок в доке) обработки данных различаются. в программной обработки возможностей больше (точнее меньше ограничений) и это просто надо учитывать, можно получить "обратный" эффект, как в твоем случае.
#27 by MadHead
спасибо за разъяснения на будущее буду учитывать
#28 by spu79
повезло тебе, я в Киеве в крайний раз был в году 92, а то без пива не отвертелся бы)))
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С