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