Не правильно написал.
На тестовом примере reread сработал, а на следующем нет.
Остановился на таком варианте в конец метода active датасорса InventTable
X++:
if(inventTable.ItemId != purch.ItemId ||
inventTable.ItemId != sales.ItemId ||
inventTable.ItemId != invent.ItemId ||
inventTable.ItemId != InventItemLocation.ItemId)
{
purch = InventTableModule::find(inventTable.ItemId, ModuleInventPurchSales::Purch);
invent = InventTableModule::find(inventTable.ItemId, ModuleInventPurchSales::Invent);
sales = InventTableModule::find(inventTable.ItemId, ModuleInventPurchSales::Sales);
InventItemLocation = InventItemLocation::find(inventTable.ItemId, InventDim::inventDimIdBlank());
}