Для себя решили проблему путем внесения изменения в метод post класса LedgerVoucher.
X++:
if (reversal && sourceRecid && !correspondenceEnabled)
// if (reversal && sourceRecid) mav bugFix
{
ledgerTrans.reverseSettlement(sourceRecid);
}
При сторнировании проводки в форме "Проводки по счету" вызвав пукнт меню "Сторнировать проводку", переменная sourceRecid равна recId сторнируемой проводки. Далее происходит поиск предыдущего сопоставления сторируемой проводки с последующим удалением найденного сопоставления и создание нового сопоставления сторнируемой проводки со сторно проводкой.
Результат сопоставленные проводки не переоцениваются алгоритмом курсовой разницы (КР) счетов ГК.
Ниже код из класса LedgerExchAdj метода run().
X++:
while select ledgerTrans
where ledgerTrans.AccountNum == ledgerTable.AccountNum &&
ledgerTrans.TransDate >= searchDate &&
ledgerTrans.TransDate <= toDate &&
(ledgerTrans.CurrencyCode >= fromCur || ! fromCur) &&
(ledgerTrans.CurrencyCode <= toCur || ! toCur)
notexists join legderTransSettlement
where ledgerTrans.RecId == legderTransSettlement.TransRecId
Если возникнет потребность исключить из расчета КР проводки, можно их сопоставить в форме сопоставлений проводок ГК.