Ну тогда, позвольте я еще про одну ошибку изложу. Скажу сразу, что толком не помню как ее воспроизвести (давненько это было). Кроется она в классе IntercompanyTransferInventDim метод transfer:
X++:
...
while (qr.next())
{
fromInventTrans = qr.get(tablenum(InventTrans));
fromInventDim = qr.get(tablenum(InventDim));
...
fromQty = -fromInventTrans.Qty;
if (inventDimParm.InventLocationIdFlag && fromInventDim.InventLocationId)
{
convInventLocation = new TradeInterCompanyConv();
salesInventLocationId = fromInventDim.InventLocationId;
convInventLocation.axInventLocationId(fromValueMap, fromInventDim.InventLocationId);
}
...
changecompany(_toDataAreaId)
{
toInventTrans = null;
select forceplaceholders sum(Qty) from toInventTrans
where toInventTrans.InventTransId == _toInventTransId
&& (toInventTrans.StatusReceipt <= StatusReceipt::Registered
|| toInventTrans.InterCompanyInventDimTransferred == true)
&& toInventTrans.StatusIssue == StatusIssue::None
#inventDimJoin(toInventTrans.InventDimId,toInventDim,fromInventDim,inventDimParm);
fromQty -= toInventTrans.Qty;
....
Обратите внимание на третий параметр в макросе #inventDimJoin, и что этот запрос исполняется уже в другой компании. В случае, если стоит настройка, при которой происходит синхронизация складов между компаниями через внешние коды, то последний запрос будет всегда возвращать ноль. То есть лечить надо примерно так: сначала сконвертировать значение fromInventDim.InventLocationId, и только потом использовать его в запросе.
P.S.: надеюсь понятно пояснил, как-то сумбурно получилось, млин