Коллеги, приветствую!
Возник вопрос по расчету реализованной курсовой разницы в расчетах с клиентами 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-го счета?
Спасибо!