Так получилось, что заказ на покупку и связанный заказ на продажу, созданный функционалом InterCompany в строке имеет одинаковый InventTransId.
В результате код в методе transfer класса InterCompanyTransferInventDim находит строку InventTrans из компании, в которой вызывается разноска заказа на продажу, а не в компании, содержащей закупку. Сам код (стандартный, мое только добавление с попыткой сбросить переменную):
X++:
changecompany(_toDataAreaId)
{
setprefix(strfmt("@SYS93821",TradeInterCompany::curCompanyName()));
// Попробуем сбросить переменную -->
toInventTrans = null;
// Попробуем сбросить переменную <--
toInventTrans = InventTrans::findTransId(_toInventTransId);
toEndpoint = AifEndpoint::findInterCompany(fromValueMap.DataAreaId);
if (toInventTrans.TransType == InventTransType::Sales)
toValueMap = AifEndpointActionValueMap::find(toEndpoint.EndpointId, defaultSalesOrderAction);
else
toValueMap = AifEndpointActionValueMap::find(toEndpoint.EndpointId, defaultPurchaseRequisitionAction);
Проблема со строкой:
toInventTrans = InventTrans::findTransId(_toInventTransId);
Причем, для toValueMap находит нужную строку, хотя значение EndpointId есть и в исходной компании. Сама смена точно происходит (TradeInterCompany::curCompanyName() возвращает нужное значение).
Если в 3.0 были такие проблемы при работе прогресс-бара, то в чем проблема в моем случае? Может кто решал?