![]() |
#3 |
Administrator
|
В связи с тем, что у меня процесс обращения в поддержку не очень прямой, а исправление до PU40 так и не доехало - решил просто дописать код самостоятельно. Фактически, критически не хватает только одной строчки кода в начале метода validateWrite() датасорса RAssetInventIssueTrans, который был в 2012 - это строчка по вычислению InventDimId с сохранением вычисленного значения в таблицу RAssetInventIssueTrans.
Но я решил пройти немного подальше и попытаться заполнить некоторые аналитики по умолчанию, дополнительно проверив, что они активные. X++: /// <summary> /// Перенос кода из AX 2012 по сохранению InventDimId /// </summary> // VSUH, RAssesFixes, 01.02.2021 [ExtensionOf(formDataSourceStr(RAssetInventIssueTrans,RAssetInventIssueTrans))] final class RAssetInventIssueTransForm_RAssetInventIssueTransDS_VS_Extension { public boolean validateWrite() { FormRun fr = element; InventDim inventDim = fr.dataHelper().FindDataSource(formDataSourceStr(RAssetInventIssueTrans, InventDim)).cursor(); RAssetInventIssueTrans rAssetInventIssueTrans = fr.dataHelper().FindDataSource(this.name()).cursor(); RAssetInventIssueTable assetInventIssueTable = fr.assetInventIssueTable(); InventTable inventTable = InventTable::find(rAssetInventIssueTrans.ItemId); if (!rAssetInventIssueTrans.RecId) { if (!inventDim.InventLocationId && InventDimGroupSetup::newInventTable(inventTable).isDimensionActive(fieldNum(inventDim, InventLocationId))) { inventDim.InventLocationId = assetInventIssueTable.InventLocationId; inventDim.InventSiteId = InventLocation::find(assetInventIssueTable.InventLocationId).InventSiteId; } if (!inventDim.InventProfileId_RU && InventDimGroupSetup::newInventTable(inventTable).isDimensionActive(fieldNum(inventDim, InventProfileId_RU))) { if (inventTable.AssetGroupId_RU) { inventDim.InventProfileId_RU = RAssetParameters::find().LowCostAssetInventProfileId; } else { inventDim.InventProfileId_RU = inventDim.inventLocation().InventProfileId_RU; } } } rAssetInventIssueTrans.InventDimId = InventDim::findOrCreate(inventDim).InventDimId; return next validateWrite(); } }
__________________
Возможно сделать все. Вопрос времени |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|