(8) причина в том, что флаг ошибки транзакции глобальный (один), по этому при любой ошибке транзакции этот флаг получают все активные транзакции (явные и не явные).
по этому мы имеем сообщение "в данной транзакции уже происходили ошибки".
то есть одна ошибка обработаная любой транзакцией приводит к краху всех активных транзакций
(8) Через открытьформу() обработки, которая отменит проведение и обратно откроет документ, но скорей всего раз такое потребовалось - значит неправильно поставлена задача.
Еще способ - работа с документом не из документа, а из обработки которая имитирует форму документа.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший