Есть две базы (допустим): Ут 10-ка (на 8.2.19.83) и БП 2 (8.3.12.1616). Есть типовая УниверсальныйОбменДаннымиXML и некие правила, пусть передающие выбранную номенклатуру. Подключение прямое к ИБ, база приемник на сервере. Во вкладке "Загрузка данных" установлен флаг "Использовать транзакции".
При такой конфигурации обмен заканчивается ошибкой:
Произошла исключительная ситуация (1C:Enterprise 8.3.12.1616): {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(12482)}: Ошибка при вызове метода контекста (ЗафиксироватьТранзакцию)
Транзакция не активна
Исследования показали, что транзакция в случае установленного флага открывается в "ВыполнитьДействияПередЧтениемДанных()" и закрывается в "ВыполнитьДействияПослеЗавершенияЧтенияДанных()" и из второй функции как раз происходит падение в ошибку. Значит к этому моменту транзакция не открыта.
В строке открытия транзакции функции ВыполнитьДействияПередЧтениемДанных добавил вывод отладочной информации в журнал регистрации, а именно значение функции ТранзакцияАктивна(). В журнале при завершении - истина, но если смотреть состояние сеанса из первой базы отладчиком (ОбъектПодключения сделал переменной модуля), то ОбъектПодключения.ТранзакцияАктивна() по завершению ВыполнитьДействияПередЧтениемДанных() тоже ложь, то есть вроде-бы транзакция не открыта.
Чем объяснить такое поведение?
спасибо
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс