0
ruslanruslan
21.08.12
✎
12:51
|
8.2.15.294, SQL, обычное приложение, обычные формы, толстый клиент.
При редактировании объекта в форме, 1С автоматом ставит пессимистическую объектную блокировку. Блокировка не дает редактировать этот объект другим пользователям в формах. Но такая блокировка совершенно не мешает изменить объект в транзакции, то есть транзакционные блокировки вообще не обращают на нее внимание.
Как следствие, если транзакция изменяет объект, пользователь, заполнивший форму уже не может ее сохранить. Вылезает сообщение о несоответствии версии записи в базе данных.
Я бы хотел в транзакции проверять объектную блокировку установленную на объект в форме, и если эта блокировка установлена, откатывать транзакцию.
Стоит ли вообще так делать? И как это делать правильно?
|
|
3
ruslanruslan
21.08.12
✎
14:38
|
Объект.Заблокировать();
Это как раз меня и не устраивает, потому что, я не знаю, "что" нужно будет блокировать в транзакции.
В транзакциях есть управляемые или автоматические блокировки, они как-раз работают как надо. В управляемых можно написать фильтр на записи, а автоматические сами блокируют то, что им нужно. Проблема в том, что транзакционные блокировки не "видят" объектных блокировок.
Вопрос в том, как правильно проверять объектовую блокировку в коде, который исполняется на сервере? Делать запрос и все объекты перебирать?
|
|