Имя: Пароль:
1C
 
Обмен данными. 8.2. Выгрузка не блокирует узел от изменений. Как так-то?
0 bolobol
 
03.03.15
22:32
Приветствую!

Поделитесь пониманием, кто в курсе, пожалуйста.

Обмен данными, начинается выгрузка:
ЗаписьСообщения.НачатьЗапись(Запись, Узел) - согласно СП: блокирует Узел от изменений.

Проверяем:
Узел.ПолучитьОбъект().Заблокировать() - ошибка, объект уже заблокирован

В процессе выгрузки пользователь нажимает кнопку "Загрузить" и данные по этому узлу успешно загружаются!!!

По окончанию выгрузки, код: ЗаписьСообщения.ЗакончитьЗапись(); - вываливается с ошибкой "запись была изменена или удалена, тра-та-та"

Вот и куда делась блокировка в процессе выгрузки?

Вопрос второй: Как сие обойти?
1 ProxyInspector
 
03.03.15
23:14
У тебя Управляемые Формы?
2 bolobol
 
04.03.15
13:32
Обмен данными на сервере происходит
3 bolobol
 
04.03.15
16:11
up
4 ProxyInspector
 
05.03.15
08:47
Я здесь столкнулся с проблемой из этой-же области. Обмен данными между торговлей и Бух 3.0 . Конфигурация бухгалтерии типовая. При загрузке данных на инструкции ЗаписьСообщения.НачатьЗапись(Запись, Узел) пишет, что объект уже заблокирован. Процедура загрузки типовая. При этом данная ошибка возникает только в SQL варианте, в файловом все проходит нормально. После многочасовых танцев с бубном выяснилось, что разработчики конфигурации засунули модуль обмена в фоновое задание. При выполнении ЗаписьСообщения.НачатьЗапись(Запись, Узел) фоновое задание пытается заблокировать объект для изменения, а процесс родитель не дает это сделать и получается очередная ж..па от 1С.
  Если у тебя более новая платформа и конфигурация, то вполне возможно, что ты столкнулся с последствиями борьбы с этим глюком со стороны разработчиков.
5 ProxyInspector
 
05.03.15
08:48
Загрузка идет в Бухгалтерию 3.0
6 bolobol
 
05.03.15
13:15
(4) Если процесс-родитель предварительно заблокировал узел, то "Начать запись" не сработает, а у меня другое - "Начать запись" блокирует узел, пока он заблокирован - этот узел невозможно "УзелСсылка.ПолучитьОбъект().Заблокировать()" - ошибка, но "УзелСсылка.ПолучитьОбъект().Записать()" - вполне!.. И после этого, "ЗакончитьЗапись()" вываливается из-за изменённого "кем-то" объекта. Неожиданно))