Блокировка объекта в процедуре БСП

1. user1824445 25.12.22 13:21 Сейчас в теме
Добрый день, уважаемое сообщество!

Подскажите, пожалуйста по процедуре ЗаписатьСвойстваУОбъекта модуля УправлениеСвойствами.
Конфигурации ERP 2.5.10.73 и Документооборот 2.1.31.5.

Поставил в тупик этот фрагмент:

		Блокировка = Новый БлокировкаДанных;
			ЭлементБлокировки = Блокировка.Добавить(ВладелецСвойств.Метаданные().ПолноеИмя());
			ЭлементБлокировки.УстановитьЗначение("Ссылка", ВладелецСвойств);
			Блокировка.Заблокировать();
			
			ВладелецСвойствОбъект = ВладелецСвойств.ПолучитьОбъект();
			ЗаблокироватьДанныеДляРедактирования(ВладелецСвойствОбъект.Ссылка);


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

Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
Ошибка при вызове метода контекста (ЗаблокироватьДанныеДляРедактирования)
{ОбщийМодуль.УправлениеСвойствами.Модуль(1195)}:ЗаблокироватьДанныеДляРедактирования(ВладелецСвойствОбъект.Ссылка);
{ВозвратНаПоддержку ОбщийМодуль.ВНПОбщийМодуль.Модуль(23)}:УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(Строка.Предмет, ТЗ);

по причине:
Ошибка блокировки объекта. Объект уже заблокирован:

СП по процедуре "ЗаблокироватьДанныеДляРедактирования" выдает:
Вызывает исключение, если объект уже заблокирован, в том числе и методом Заблокировать.

Т.е. получается, что объект блокируется и тут же вызывается процедура "ЗаблокироватьДанныеДляРедактирования" с этим же объектом, и имеем исключение.

Ничего не понятно.
Или лыжи не едут...)

Кстати, в ДО 2.1.13.28 этот код отсутствует:

		        Блокировка = Новый БлокировкаДанных;
			ЭлементБлокировки = Блокировка.Добавить(ВладелецСвойств.Метаданные().ПолноеИмя());
			ЭлементБлокировки.УстановитьЗначение("Ссылка", ВладелецСвойств);
			Блокировка.Заблокировать();


и все нормально записывается.

Помогите, пожалуйста разобраться.
Спасибо.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. igor-pn 73 25.12.22 14:03 Сейчас в теме
Добрый день! Возможно логика в том, что доп.реквизит добавляется в одной конфигурации и мигрирует в другую по бесшовной интеграции. Но если смущает момент, делайте расширение и организовывайте работу под себя. Заодно посмотрите, будут ли какие ошибки, если убрать эту часть кода. Если возникнут ошибки, то логика станет понятной.
3. user1824445 25.12.22 14:23 Сейчас в теме
(2)
Спасибо!
Была задача вернуть на поддержку ДО, вынеся все доработки в расширения.
У одного из справочников был добавлен реквизит, его и заменил на дополнительный реквизит.
Работу с ним организовал в расширении, в т.ч. используя процедуру БСП "ЗаписатьСвойстваУОбъекта".
На релизах 2.1.13.28 и 2.1.28.15 все нормально отрабатывало.
А на 2.1.31.5 (может ранее) добавились эти строки.
Склоняюсь к тому, чтобы в расширении обойти этот момент, но, как говорил герой Моргунова из "Операции Ы", народ хочет разобраться!)
Не люблю, когда остаются не выясненные вопросы...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот