|
Обмен данными. 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) Если процесс-родитель предварительно заблокировал узел, то "Начать запись" не сработает, а у меня другое - "Начать запись" блокирует узел, пока он заблокирован - этот узел невозможно "УзелСсылка.ПолучитьОбъект().Заблокировать()" - ошибка, но "УзелСсылка.ПолучитьОбъект().Записать()" - вполне!.. И после этого, "ЗакончитьЗапись()" вываливается из-за изменённого "кем-то" объекта. Неожиданно))
|
|