Показать сообщение отдельно
Старый 04.02.2020, 09:46   #6  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
365 / 542 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Из ГК конечно данные берутся, вроде это известная ошибка стандарта, когда у вас преобразование сделано той же датой, что и основная проводка, как то исправлял, для клиентов или для поставщиков.

Там проблема в том, что подбор по проводкам ГК идет по принципу какую первую проводку с типом Сальдо по поставщику\Сальдо по клиенту система определит для ваучера и даты (а номер ваучера то у нас для оплаты и предоплаты одинаковый), тот счет и будет использовать, т.е. либо авансовый, либо нет.

Исходный код вот тут RLedgerTurnoverTypeCustVend\getMainAccountNum (метод используется для ОСВ и по клиентам и по поставщикам, учтите этот момент когда\если будете вносить правки) :

X++:
/// <summary>
/// Retrieves the Main account for the transaction.
/// </summary>
/// <param name="_custVendTrans">
/// The transaction table buffer.
/// </param>
protected void getMainAccountNum(CustVendTrans _custVendTrans)
{
    GeneralJournalAccountEntry generalJournalAccountEntry;
    GeneralJournalEntry generalJournalEntry;
    SubledgerVoucherGeneralJournalEntry subledgerVoucherGeneralJournalEntry;

    if (_custVendTrans.Voucher          != voucher          ||
        _custVendTrans.TransDate        != accountingDate   ||
        _custVendTrans.PostingProfile   != postingProfile)
    {
        voucher         = _custVendTrans.Voucher;
        accountingDate  = _custVendTrans.TransDate;
        postingProfile  = _custVendTrans.PostingProfile;

        while select * from generalJournalAccountEntry
            exists join generalJournalEntry
                where generalJournalEntry.RecId  == generalJournalAccountEntry.GeneralJournalEntry
                   && generalJournalEntry.Ledger == Ledger::current()
            exists join subledgerVoucherGeneralJournalEntry
                where subledgerVoucherGeneralJournalEntry.GeneralJournalEntry == generalJournalEntry.RecId
                   && subledgerVoucherGeneralJournalEntry.Voucher             == voucher
                   && subledgerVoucherGeneralJournalEntry.AccountingDate      == accountingDate
        {
            if ((_custVendTrans.AmountMST
                && generalJournalAccountEntry.AccountingCurrencyAmount * _custVendTrans.AmountMST > 0)
                || (! _custVendTrans.AmountMST
                && generalJournalAccountEntry.ReportingCurrencyAmount * _custVendTrans.ReportingCurrencyAmount > 0)
                && _custVendTrans.Correct == generalJournalAccountEntry.IsCorrection)
            {
                mainAccountNum = DimensionStorage::getMainAccountNumFromLedgerDimension(generalJournalAccountEntry.LedgerDimension);

                if (conFind(this.ledgerPostingType(), generalJournalAccountEntry.PostingType))
                {
                    break;
                }
            }
        }
    }
}
__________________
Sergey Nefedov
За это сообщение автора поблагодарили: Logger (5), mnt_dx (3).