chessman писал(а) 11. Сентября 2009 :: 10:26:Можно немного OFF?
Хочу понять, зачем 1С-ка блокирует _1sjourn на все время проведения? Документ-то уже записан, а проведение только изменяеть одно поле в этой таблице.
Чтобы рассчитались правильно регистры
Происходит следущее
1.В начале проведения восстанавливаем регистры без документа проведения от текущего периода до ТА
2.Далее обрабатываем долго с клиента 1с модуль проведения при этом
для каждой строки добавить движение пересчитываем
состояние регистров от текущего периода то ТА.
Если просто разрешить обоим то может возникнуть
фантомы т.е оба одновременно начнут добавлять запись.
Все остальные случаи вроде ловяться на ожидании по индексу.
и второе из-за чего если
отменили движения первого документа
отменили движения второго документа с учетом первого документа
первый проведение окончилось откатом
второй закончился успешно.
Имеем неправильные итоги регистра.
то будет происходить по всем общим измерениям.
Хотя это тоже должно останавливаться по индексу.
Третье так как движения из 1с идут неупорядоченными то возрастает очень сильно вероятность возникновения взаимоблокировок.
Всякие свои блокировки это блокировать одно из измерений тогда их можно проводить паралельно. Т.е. весь регистр как бы делим
на подрегистры.
Но при этом тоже есть нюансы. Если измерения блокировок выбраны неправильно то таких блокировок становиться
очень много для одного проведения что становиться хуже чем единственная блокировка на все.