Столкнулся с той же проблемой.
Добавление группировки по полю InventTransId решает проблему не полностью.
Смысл такой - если нет проводок в TaxTrans - в map добавляеться значение с пустым ключом - см. макрос #TransNotLiable и места в коде
PHP код:
mapTransAmountsCur.insert(#TransNotLiable, transAmountsCur.pack());
...
mapTransAmountsMST.insert(#TransNotLiable, transAmountsMST.pack());
Дальше смотрим в метод addFactureTransAmounts класса FactureCalcSettlement_RU и видим, что в map добавляеться ключ #factureTransKey данные в который беруться из _factureTrans, в котором тот же номер лота далеко не пустой.
А теперь возвращаемся к методу calc в классе FactureCalcSettlement_RU и строке:
PHP код:
if (smallSettledAmounts.amountInclVAT() && mapFactureAmountsDetail.exists(#keyInvoice2facture))
Смотрим как формируеться ключ #keyInvoice2facture и что он содержит.
А теперь вспоминаем разницу между содержимым ключей #TransNotLiable и #factureTransKey.
Решение по понятным причинам на форум не могу выложить.
(ПМ и так на меня бурчит (Саша привет!

), что я много времени торчу на форуме)
Но могу сказать что в методе addFactureTransAmounts класса FactureCalcSettlement_RU в этом месте:
PHP код:
_mapAmounts.insert(#factureTransKey, structAmounts.pack());
использую свой ключ в зависимости от определенного условия.
P.S. Кто столкнулся с этим и кому лень думать - в аську