В решении проблемы 2 есть ошибка, при пересчете нужно использовать стандартную логику, то есть в методе InventCostItemDim::updateItem():
X++:
//+ DPL InventClosingFix_OK 12.02.2011 OK
if (inventClosing.AdjustmentType==InventAdjustmentType:Closing & &
calculationProdWIP_RU
)
{
this.updateReceiptAdjustment();
}
//- DPL InventClosingFix_OK 12.02.2011 OK