Имя: Пароль:
1C
1С v8
Какой вариант блокировки правильнее?
0 Старик Юзергад
 
07.06.13
18:02
1.Конфигурация в режиме блокировок "Управляемый и автоматический"
2.Регистр в режиме "Управляемый"
3. Выполняется процедура фонового задания.

Вариант1:
НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый);
БлокировкаДанных = Новый БлокировкаДанных;
//трам пам пам
БлокировкаДанных.Заблокировать();
НаборЗаписей.Записать();
ЗафиксироватьТранзакцию();

Вариант2:
БлокировкаДанных = Новый БлокировкаДанных;
//трам пам пам
БлокировкаДанных.Заблокировать();
НаборЗаписей.Записать();

Суть вопроса: надо ли заключать код в конструкцию НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый)?
Или и так все выполнится в управляемом режиме?
1 Старик Юзергад
 
07.06.13
18:08
И вообще, вопрос, если устанавливаю БлокировкаДанных и записываю регистр из процедуры, не относящейся к проведению документа, надо заключать запись в конструкцию НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый)?
2 ssh2012
 
07.06.13
18:10
(0) без транзакции ничего не заблокируется
3 Старик Юзергад
 
07.06.13
18:12
Подозреваю, что в конфигурации  в режиме блокировок "Управляемый и автоматический" транзакция самого верхнего уровня начинается в Автоматическом режиме, если явно нельзя определить режим транзакции?

Документ если проводится в управляемом  режиме - то понятно, что блокировка будет управляемой.

А вот фоновое задание в каком режиме блокировки это запустит?
4 ssh2012
 
07.06.13
18:17
(0) "Важной особенностью работы в режиме Автоматический и управляемый является то, что не во всех ситуациях работа с данными объекта будет выполняться именно в том режиме, который для него указан. Рассмотрим эту особенность подробно."
http://1cexpo.ru/informacziya/27-blokirovki-dannyx-v-1spredpriyatii-8.html
5 Старик Юзергад
 
07.06.13
18:20
(2) да, спасибо, понял.

Нет смысла устанавливать блокировку объектом Новый БлокировкаДанных из обычной процедуры, если это не заключено в НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый)
6 Fragster
 
гуру
07.06.13
18:41
(5) ну почему же... если оно в обработке проведения или записи - транзакция уже начата...
7 Старик Юзергад
 
07.06.13
18:48
(6) оно не там