Имя: Пароль:
1C
 
Блокировка регистра сведений для записи
0 arsenfn
 
04.08.25
10:10
Добрый день!

Хочу заблокировать запись регистра сведений перед записью данных.
Пишу такой код:

Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить();
ЭлементБлокировки.Область = "РегистрСведений.МойРегистр";
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.УстановитьЗначение("ID", ID);
Блокировка.Заблокировать();

Получаю ошибку "Использование блокировки допустимо только внутри транзакции в режиме управляемых блокировок!"

Как-нибудь можно установить блокировку не использую транзакцию?

Конфигурация Управление торговлей 11.5
1 Волшебник
 
04.08.25
10:11
Использование блокировки допустимо только внутри транзакции в режиме управляемых блокировок!
2 maxab72
 
04.08.25
10:13
(1) А заблокировать работу всех остальных пользователей и фоновых и регламентных заданий будет считаться за блокировку?
3 Волшебник
 
04.08.25
10:14
4 Ненавижу 1С
 
гуру
04.08.25
10:18
(0) а зачем? перед записью оно все равно заблокируется на время записи
5 d4rkmesa
 
04.08.25
10:19
(0) А ЗаблокироватьДанныеДляРедактирования() не подойдет в данном случае?
6 arsenfn
 
04.08.25
10:20
(4) Когда делаю Набор.Записать() иногда вылетает ошибка конфликт блокировок
7 arsenfn
 
04.08.25
10:21
(5) этот метод не пробовал
8 Волшебник
 
04.08.25
10:22
МойРегистр — плохое имя регистра
9 d4rkmesa
 
04.08.25
10:23
(6) Если там прямо конкурентный код, который часто выполняется программно, то написать в НачатьТранзакцию ... и все такое.
10 Chameleon1980
 
04.08.25
10:24
в (1) подсказка. уточню - гуглите "управляемых блокировок"
11 Ненавижу 1С
 
гуру
04.08.25
12:43
(6) ну будет вылетать при попытке заблокировать