Сначала про варианты обходов:
Вариант 1:При закрытии вызываешь невидимую форму с ожиданием на 1 сек, которая выполняет или вызывает выполнитель необходимых действий. Пояснять?
У меня так удаляются ненужные документы, которым для нормального заполнения необходимо сначала записаться.
Вариант 2:На кнопки "Провести" и "ОК" Ставишь не стандартные команды с решетками, а вызов спец.функции (у меня она называется НаПроведение), которая сперва выполняет "операции до проведения", потом вызывает само проведение, а потом выполняет "операции после проведения".
Методика по началу кажется достаточно сложной и требует также переписания функции ПриЗаписи, но в дальнейшем работает как часы (вплоть до конфликта с транзакцией).
Суть идеи и заключалась в том, что перед проведением иногда требовалось выполнить некоторые пересчеты ТЧ, а после надо было автоматически создать или перепровести подчиненные документы, полностью зависящие от содержимого данного документа и не редактируемые пользователями.
А теперь про косяки:
ziflex писал(а) 10. Октября 2011 :: 00:25:В обработке проводятся некоторые расчеты и в итоге должна перезаписать этот документ
Это в корне неверный подход! Если необходимо изменять документ, то это надо делать либо при проведении либо непосредственно перед этим, но ни никак не после!!!
ziflex писал(а) 10. Октября 2011 :: 00:25:Решил обойти это средствами 1С++/FormEx закрывая форму из обработки. Все отлично проводится. Но вылазит другая проблема. При завершении работы обработки 1С падает.
Это, скорее всего, проблема циклических ссылок и способа вызова. Проверяй, чтобы после открытия формы
немодально сразу очищались все ссылки на нее в форме документа, а также, чтобы в открытой форме не было ссылки на его контекст.