Из ГК конечно данные берутся, вроде это известная ошибка стандарта, когда у вас преобразование сделано той же датой, что и основная проводка, как то исправлял, для клиентов или для поставщиков.
Там проблема в том, что подбор по проводкам ГК идет по принципу какую первую проводку с типом Сальдо по поставщику\Сальдо по клиенту система определит для ваучера и даты (а номер ваучера то у нас для оплаты и предоплаты одинаковый), тот счет и будет использовать, т.е. либо авансовый, либо нет.
Исходный код вот тут 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;
}
}
}
}
}