1) Существующая блокировка Управляемая <=> Регистр сведений Управляемый режим
Проводится документ например в управляемой транзакции.
|
Начинаемая транзакция будет выполнена в управляемом режиме |
2) Существующая блокировка Автоматическая <=> Регистр сведений Управляемый режим
|
Начинаемая транзакция будет выполнена в автоматическом режиме |
3) Существующая блокировка Автоматическая <=> Регистр сведений Автоматический режим
|
Начинаемая транзакция будет выполнена в автоматическом режиме |
4) Существующая блокировка Управляемая <=> Регистр сведений Автоматический режим
|
Будет вызвана исключительная ситуация |
Фиксирование данных в кэше идет по следующему алгоритму: объект изменения начинает транзакцию со своим типом блокировки, в работающей транзакции, срабатывает подписка на событие и фиксирует изменение в кэш уже в своей блокировке (см пункты выше). Проблема возникает только там, где стоит режим блокировок в начале транзакции "Автоматический" в объектах.
При этом обратите внимание, что вне зависимости от того, какой режим транзакций будет у регистра кэша, будет возникать проблема.
Если регистр кэша будет с автоматическим режимом, то если у объекта источника изменений режим управления транзакциями стоит Управляемый, то будет исключительная ситуация, если же регистр будет на управляемых блокировках, то если у объекта источника изменений режим управления транзакциями будет стоять Автоматический, то транзакция будет так же в автоматической блокировке и вот здесь у Вас проблемы с транзакциями. Что имеем? Без перевода объектов источников изменений в управляемый режим управления блокировками ничего, к сожалению, не решить. Подсистема здесь не играет никакой роли, все транзакции начинаются с объектов конфигурации, а значит нужно менять режим у них.
Как можно выйти из сложившейся ситуации:
1) Регистр сведений внКэшЖурналаРегистрации, должен быть на управляемых блокировках.
2) Оставить регистрацию в настройках подсистемы объектов только с управляемыми блокировками.
3) Постепенно осуществить перевод тех объектов, которые на автоматических блокировках и которые необходимо фиксировать на управляемый режим (объектов и регистров с ними связанными)
4) После перевода на управляемые блокировки включить их в регистрируемые объекты подсистемы.
Хотелось бы подчеркнуть, простыми изменениями подсистемы не обойтись, мы не можем изменить алгоритм работы платформы с блокировками, необходим перевод регистрируемых объектов на управляемые блокировки.