Имя: Пароль:
1C
1С v8
Метод Заблокировать()
0 efoi
 
18.05.12
10:05
Доброго времени суток! Не получается заблокировать документ. Интерфейс не управляемый.

Ссылка.ПолучитьОбъект().Заблокировать()

При этом в отладке смотрю признак Заблокирован стоит истна, но при открытии документа все поля доступны. Подскажите пожалуйста в чем косяк?
1 zak555
 
18.05.12
10:06
ты записать попробуй
2 efoi
 
18.05.12
10:07
(1) Само собой :) запись есть
3 Shurjk
 
18.05.12
10:08
А что ты хочешь от метода заблокировать?
4 efoi
 
18.05.12
10:09
(3) Чтобы поля стали не доступными и проведение, короче не допустить изменение документа.
5 AaNnDdRrEeYy
 
18.05.12
10:11
ЭтаФорма.Доступность = ложь;
это в модуле формы естественно
6 kosts
 
18.05.12
10:12
Ссылка.ПолучитьОбъект().Заблокировать()

это равно получить объект по ссылке, заблокировать и забыть про объект и про блокировку...
7 Shurjk
 
18.05.12
10:12
(4) Он этого не делает - юзай свойство формы ТолькоПросмотр.
8 efoi
 
18.05.12
10:12
Ок! Спасибо)
9 Shurjk
 
18.05.12
10:13
(6) Это называется пессемистичная блокировка. Что значит забыть - не совсем понял.
10 kosts
 
18.05.12
10:18
(9)
Перем Объект;

Процедура
Объект = Ссылка.ПолучитьОбъект();
Объект . Заблокировать();
конецПроцедуры

При этом переменная Объект не должна уничтожаться на все время блокировки.
11 kosts
 
18.05.12
10:19
(10) Это в обработке
для формы документа так наверно пойдет:
ЭтотОбъект.Заблокировать();
12 Shurjk
 
18.05.12
10:22
(10) Что будет если она "уничтожиться" или переопределится? (11) Можно просто Заблокировать() - методы объекта и в форме доступны.
13 efoi
 
18.05.12
10:26
вернее мне надо было блокировать форму. А метод Заблокировать блокирует объект, например чтоб другой пользователь не открыл его пока идет обработка.
14 AaNnDdRrEeYy
 
18.05.12
10:27
Заблокировать() применяется когда что то программно изменяем и хотим быть уверенными что пока изменяем кто то другой не внесет в документ изменения перед тем как мы запишем свои.
Если нужно просто пользователю запретить мнять достаточно установить Доступность формы в ложь (или толькопросмотр в истина).
Если применять метод заблокировать() то после того как пользователь открыл документ даже программно его переписать не получиться, допустим перепроведением документов из другого сеанса
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший