|
Заблокировать некоторые объекты для изменения, пока открыта форма документа | ☑ | ||
---|---|---|---|---|
0
Ахмадинежад
08.09.11
✎
17:49
|
То есть юзер заходит в документ - и пока он с ним работает, некоторые другие объекты нужно заблокировать.
Есть какое-нибудь изящное решение, кроме как ч/з/ж в ПриОткрытии потенциально блокируемых объектов проверять наличие какой-нить записи в регистре и в зависимости от этого залочивать или нет форму объекта.. БлокировкаДанных мимо по ходу. |
|||
1
mishmeister
08.09.11
✎
17:50
|
Синтаксис:
Заблокировать() Описание: Выполняет блокировку объекта от изменения другими режимами или пользователями. Доступность: Сервер, толстый клиент, внешнее соединение. Не катит? |
|||
2
Ахмадинежад
08.09.11
✎
17:52
|
Блокировка вроде в пределах транзакции работает и то не долго.. Хотя может я конечно туплю
|
|||
3
mishmeister
08.09.11
✎
17:53
|
Если верить СП, то можешь получить объект, заблокировать и никто его не тронет. Ограничений никаких нет(В СП)
|
|||
4
Ахмадинежад
08.09.11
✎
17:54
|
(3)в смысле не через БлокировкаДанных ?
|
|||
5
mishmeister
08.09.11
✎
17:58
|
Ну элементом блокировки является вся таблица(судя СП:)), ЗАблокировать() блокирует только объект.
|
|||
6
mishmeister
08.09.11
✎
17:59
|
+(5) Хотя могу врать, попробуйте.
|
|||
7
Ахмадинежад
08.09.11
✎
18:15
|
попробовал, ПриОткрытии - блокирую, в ПриЗакрытии - проверяю статус - Заблокирован()=Ложь
|
|||
8
vde69
08.09.11
✎
18:21
|
в запросе "ДляИзменения" ???
|
|||
9
Ахмадинежад
08.09.11
✎
21:01
|
Никаких запросов нет. Просто нужно заблокировать несколько документов. Метод у ДокументаОбъект Заблокировать() ошибок не выдаёт, но и не блокирует
|
|||
10
Wingless
08.09.11
✎
21:07
|
У меня это как-то так выглядит:
&НаКлиенте Процедура ПриОткрытии(Отказ) Если параметры.Ключ.Пустая() Тогда УдачнаяБлокировка = ЗаблокироватьСпецификацию(объект.Владелец, УникальныйИдентификатор); Если не УдачнаяБлокировка Тогда Отказ = истина; КонецЕсли; КонецЕсли; КонецПроцедуры &НаСервереБезКонтекста Функция ЗаблокироватьСпецификацию(Спецификация, ид) попытка ЗаблокироватьДанныеДляРедактирования(Спецификация,, ИД); Возврат Истина; исключение ОписаниеОшибки = ОписаниеОшибки(); Символ = Найти(ОписаниеОшибки, "компьютер"); Сообщить(ОписаниеОшибки, СтатусСообщения.Важное); Возврат Ложь; КонецПопытки; КонецФункции |
|||
11
vde69
08.09.11
✎
23:11
|
ДокументаОбъект.Заблокировать()
не выполняет блокировку в привычном понимании, он выполняется без ошибки только 1 раз, тоесть если на компе А вызываю Заблокировать() - нормально работает если потом на компе Б вызываю Заблокировать() - будет ошибка исполнения |
|||
12
Ахмадинежад
09.09.11
✎
09:16
|
(11)а в каком смысле он тогда устанавливает блокировку ?
|
|||
13
Ахмадинежад
09.09.11
✎
09:36
|
и, кстати, даёт заблокировать с другого сеанса тоже..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |