Имя: Пароль:
1C
1С v8
БлокировкаДанных - в какой момент происходит снятие блокировки?
0 vde69
 
модератор
21.11.13
11:03
Сделка = Документы.Сделка.ПустаяСсылка();
            НачатьТранзакцию();
            
            Блокировка = Новый БлокировкаДанных;
            ЭлементБлокировки = Блокировка.Добавить("Последовательность.ПоследовательностьСделок.Записи");
            ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
            ЭлементБлокировки.ИсточникДанных = РезультатЗапроса;
            ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Сделка", "Сделка");
            ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Регистратор", "Регистратор");
            Блокировка.Заблокировать();            


а в какой момент блокировка снимится? в момент фиксации транзакции, разрушения обьекта "блокировка", или окончания процедуры (по сборке мусора), или еще когда?
1 ДенисЧ
 
21.11.13
11:04
По завершении транзакции
2 Жан Пердежон
 
21.11.13
11:12
ЖКК про упр.блокировки> При окончании транзакции они будут сняты автоматически. Если
же метод Заблокировать() выполняется вне транзакции, то блокировки
установлены не будут.
3 Жан Пердежон
 
21.11.13
11:13
но граммар-наци все равно негодуют
4 vde69
 
модератор
21.11.13
11:13
спасибо :)
5 ДенисЧ
 
21.11.13
11:14
Ого... Не обратил внимания на автора...
Не стыдно?
6 vde69
 
модератор
21.11.13
11:20
(5) нельзя знать все, блокировками пользуюсь крайне редко по причене того, что если архитектура правильная то они нафиг не нужны.
7 ИсчадиеADO
 
21.11.13
11:20
(5) ТС таким образом просто проверяет знания 1сников :)
8 vde69
 
модератор
21.11.13
11:21
в данном случае пишу нестандартное востановление последовательности, вот и заморочился