Актуально, сами только что наступили
Classes\CustVendCalcSettledAmounts_Cust_RU.calcTransAmounts()
PHP код:
while select sum(TaxBaseAmount), sum(TaxAmount), sum(SourceBaseAmountCur), sum(SourceTaxAmountCur),
sum(sourceRegulateAmountCur) from taxTrans
group by TaxCode, TaxGroup, TaxItemGroup, Dimension, AccountNum, OffsetAccountNum_RU,
TaxAutogenerated, EUROTriangulation, TaxDirection, SourceCurrencyCode, Source,
InventTransId // Это следует добавить
where taxTrans.Voucher == mainTrans.Voucher &&
taxTrans.TransDate == mainTrans.TransDate &&
taxTrans.TaxOrigin == TaxOrigin::Tax &&
(! useSourceRecId || taxTrans.SourceRecId == mainTrans.RecId)
join TaxType_RU from taxTable
group by TaxType_RU
where taxTable.TaxCode == taxTrans.TaxCode &&
(taxTable.TaxType_RU == TaxType_RU::VAT ||
taxTable.TaxType_RU == TaxType_RU::VATReduced ||
taxTable.TaxType_RU == TaxType_RU::VATZero)
...
исправляет ситуацию.
Как я понял, здесь в Map пихается ключ с пустым InventTransId. В месте же, где этот Map используется - Classes\FactureCalcSettlement_RU.calc()
PHP код:
if (smallSettledAmounts.amountInclVAT() && mapFactureAmountsDetail.exists(#keyInvoice2facture))
{ ...
ключ уже сформирован правильно, что и приводило к неувязочке...