Я аналогичную задачу решал более простым способом:
1. Курочился рассчет мгновенной себестоимости списания, таким образом чтобы таковая всегда была равна нолю. Соответственно - себестоимость прихода(в том случае если встречный приход создавался - например в журнале спецификаций) тоже равнялась нолю и проводки списания/прихода просто не создавались. (Хотя номер ваучера и резервировался и писался в inventTrans/inventTransPosting).
2. Разноска коррекций (InventAdjPost) была переписана так, чтобы обороты считались и разносились не в разрезе ваучера закрытия склада, а в разрезе исходного ваучера. Никто не мешает в момент разноски создать объект ledgerVoucher, с уже использованым номером ваучера, проверку на дублирование можно безнаказанно отключить.
В итоге - бухгалтера получали свою любимую проводку списания в исходном документе. При отмене закрытия/пересчета, сторно тоже пишется в исходном документе. (Бухгалтера этого не любят, но жить с этим могут).
Хотя в стратегическом плане, если подобная задача возникла, лучшее решение - это подыскать другую работу