Имя: Пароль:
1C
 
НачатьТранзакцию и БлокировкаДанных. Блокировка устанавливается на все объекты?
0 ИС-2
 
naïve
18.01.23
15:20
Есть кусок кода.        

Прошу пояснить будет заблокирован только регистр axЗаписываемыеИдентификаторыОбъектов или еще все объекты ? Смущает, что написано НачатьТранзакцию() ? Может надо НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый) ?

        НачатьТранзакцию();
        
        БлокировкаДанных = Новый БлокировкаДанных;
        ЭлементБлокировки = БлокировкаДанных.Добавить("РегистрСведений.axЗаписываемыеИдентификаторыОбъектов");
        ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
        ЭлементБлокировки.УстановитьЗначение("Идентификатор", Object.ID);
        БлокировкаДанных.Заблокировать();
        
        СсылкаНаОбъект = ПолучитьОбъектыПоИдентификаторам(Object.ID);
        
        Если СсылкаНаОбъект = Неопределено Тогда
            ТекстОшибки = СтрШаблон("При загрузке статуса ожидаемой приемки. Не найдена ожидаемая приемка с идентификатором %1", Object.ID);
            ОтменитьТранзакцию();
1 Жан Пердежон
 
18.01.23
15:22
"Ещё все объекты" - с чего бы?
2 toypaul
 
гуру
18.01.23
15:56
Предполагаю, что axЗаписываемыеИдентификаторыОбъектов управляемая блокировка. А все остальные - автоматическая
3 mikecool
 
18.01.23
16:14
(0) "НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый) ?"
ты не сможешь так сделать, если в транзакции появится хотя бы один объект с автоматической блокировкой
4 ИС-2
 
naïve
27.01.23
14:06
(1) что не указан режим, что блокировка управляемая? Могут блокироваться все объекты или нет ?
Основная теорема систематики: Новые системы плодят новые проблемы.