Как определить кто блокирует объект ?
☑
0
ИС-2
27.07.18
✎
15:47
Есть более простые способы, чем профайлер и ЦУП ?
1
olegves
27.07.18
✎
15:48
пытаешься заблокировать - тебе возвращает кто блокирует
2
Cyberhawk
27.07.18
✎
16:03
Заблокировать() в попытке
3
H A D G E H O G s
27.07.18
✎
16:33
(2) Хорошая попытка, но нет.
4
H A D G E H O G s
27.07.18
✎
16:33
Функция ВыполнитьПопыткуБлокировки(Ссылка) Экспорт
СтруктураВозврата=Новый Структура;
СтруктураВозврата.Вставить("ОписаниеОшибки","");
СтруктураВозврата.Вставить("Результат",Ложь);
Попытка
ЗаблокироватьДанныеДляРедактирования(Ссылка);
СтруктураВозврата.Вставить("Результат",Истина);
Исключение
ОписаниеОшибки = НСтр("ru='Не удалось заблокировать для изменения %Элемент%. %ОписаниеОшибки%'");
ОписаниеОшибки = СтрЗаменить(ОписаниеОшибки, "%Элемент%", Ссылка);
ОписаниеОшибки = СтрЗаменить(ОписаниеОшибки, "%ОписаниеОшибки%", КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
СтруктураВозврата.Вставить("ОписаниеОшибки",ОписаниеОшибки);
КонецПопытки;
Возврат СтруктураВозврата;
КонецФункции
5
RomanYS
27.07.18
✎
16:36
(4) А разблокировать не надо?
6
H A D G E H O G s
27.07.18
✎
16:36
(5) Ну там же написано в названии процедуры, что она делает.
7
Cyberhawk
27.07.18
✎
16:40
(3) Если объект уже получен / прочитан в память, то работает на ура
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший