Показать сообщение отдельно
Старый 14.10.2016, 10:39   #1  
ksenia is offline
ksenia
Участник
Аватар для ksenia
 
291 / 28 (1) +++
Регистрация: 11.10.2003
Адрес: Москва
КР в клиентах DAX2012 R3
Коллеги, приветствую!
Возник вопрос по расчету реализованной курсовой разницы в расчетах с клиентами DAX2012 R3.
Ситуация следующая: при сопоставлении проводок система вместо одной проводки в ГК по сумме курсовой разницы делает две - одну на минус, другую на плюс, при сложении они дают верный результат, но их две. И аналитики у них разные. Собственно, две их именно из-за аналитик.Источник этих двух разных наборов аналитик, по мнению системы, проводка по списанию себестоимость номенклатуры Дт90 Кт41 (для системы это две проводки по Дт и Кт с сильно разными аналитиками).
Начали копать, откопали вот что: класс CustVendTransExchAdjDistController_RU метод insertDistributionsFromGeneralJournal
Там написано вот что:
ledgerPostingType = CustBalance
currentDefaultLedgerDimension = 62.01
X++:
protected Amount insertDistributionsFromGeneralJournal(CustVendTrans _custVendTrans, LedgerPostingType _ledgerPostingType, Map _dimensionMap)
{
    GeneralJournalAccountEntry  generalJournalAccountEntry;
    GeneralJournalEntry         generalJournalEntry;
    SubledgerVoucherGeneralJournalEntry subledgerVoucherEntry;
    Amount                      ret;
    ;

    while select LedgerDimension, sum(TransactionCurrencyAmount) from generalJournalAccountEntry
        group by LedgerDimension
        join RecId from generalJournalEntry
        join TableId from subledgerVoucherEntry
        where generalJournalAccountEntry.PostingType    != _ledgerPostingType
            && generalJournalAccountEntry.PostingType   != LedgerPostingType::Tax
            && generalJournalEntry.RecId                 == generalJournalAccountEntry.GeneralJournalEntry
            && generalJournalEntry.Ledger                == currentLedger.RecId
            && subledgerVoucherEntry.GeneralJournalEntry == generalJournalEntry.RecId
            && subledgerVoucherEntry.AccountingDate      == _custVendTrans.TransDate
            && subledgerVoucherEntry.Voucher             == _custVendTrans.Voucher
    {
        ret = this.addDimensionAmount(
            currentDefaultLedgerDimension,
            generalJournalAccountEntry.LedgerDimension,
            generalJournalAccountEntry.TransactionCurrencyAmount,
            _dimensionMap,
            ret
        );
    }
    return ret;
}
Собственно, вот в этих двух строчках
X++:
generalJournalAccountEntry.PostingType    != _ledgerPostingType
            && generalJournalAccountEntry.PostingType   != LedgerPostingType::Tax
система и находит проводки с разными аналитиками и пытается как-то начислить КР на 62-м счете на каждый из наборов аналитик (может это неправильное выражение, но как иначе объяснить, не знаю...) в корреспонденции с 91-м счетом

Не можем понять, в чем великий смысл? Как сделать так, чтобы проводка была одна с исходными аналитиками 62-го счета?
Спасибо!