Показать сообщение отдельно
Старый 11.12.2019, 15:32   #1  
oleg.s is offline
oleg.s
Участник
 
2 / 10 (1) +
Регистрация: 06.12.2019
Адрес: Москва
AX 2012 R3 CU8 Расхождение в валюте учета между проводкой модуля и проводкой ГК
Добрый день.

Недавно столкнулись с расхождением суммы между проводкой модуля и проводкой ГК в валюте учета при разноске накладной по поставщику, содержащей несколько строк.
Валюта операции - рубли. Валюта учета - доллары.

Идентичная ошибка описана на англоязычных форумах, для решения проблемы предлагается установить KB 3102194.
https://community.dynamics.com/ax/f/...liation-report


К сожалению, после установки KB проблема осталась.
После небольшого расследования выяснилось, что новая функциональность отключена в коде для региона RU.
X++:
if (this.canPerformSummaryRoundingAdjustment(sourceDocument))
            {
                this.recordSubledgerJourAccEntriesForRounding(sourceDocument, accountingEvent);
            }
            else
            {
                this.recordSubledgerJournalAccountEntries(sourceDocument, accountingEvent);
            }
X++:
private boolean canPerformSummaryRoundingAdjustment(SourceDocument _sourceDocument)
{
    SubledgerJourSummaryRoundingAdjuster summaryRoundingAdjuster;
    boolean canPerformSummaryRoundingAdjustment;

    if (this.isExcludedFromDetailOrSummaryRounding())
    {
        canPerformSummaryRoundingAdjustment = false;
    }
    else
    {
        summaryRoundingAdjuster = SubledgerJourSummaryRoundingAdjuster::newFromDocument(_sourceDocument);
        canPerformSummaryRoundingAdjustment = summaryRoundingAdjuster.canPerformAdjustment();
    }

    return canPerformSummaryRoundingAdjustment;
}
X++:
private boolean isExcludedFromDetailOrSummaryRounding()
{
    return (hasInterCompany || SysCountryRegionCode::isLegalEntityInCountryRegion([ #isoRU, #isoCZ, #isoHU, #isoPL, #isoBR, #isoMX ]));
}
Пока что для себя пробую включить данный функционал для региона RU...

Правильный ли это подход? Может быть есть дополнительное обновление, которое уже это сделало или есть другие способы решить данную проблему?