Чтобы обойти баг с кешированием по InventTrans - как правило перед выполнением запроса по InventTrans в кастомизациях отключают кеш
InventTrans.disableCache(true);
Но в системе есть куча стандартных мест где используется такой кеш.
Надежнее сделать следующую кастомизацию.
Как правило кеш используется при вызове метода
X++:
\Data Dictionary\Tables\InventTrans\Methods\viewCacheInventTransId
из
X++:
\Classes\InventMovement\viewCacheInventTransId
поэтому лучше сделать так
Заводим метод
X++:
\Classes\InventMovement\ClearViewCacheInventTransId
X++:
void ClearViewCacheInventTransId()
{
viewCacheInventTrans = NULL;
}
и вызываем в семействе классов InventUpdate - везде где было кеширование, то есть вызов
X++:
\Classes\InventMovement\viewCacheInventTransId
Например в конце метода updateNow() в классах InventUpd_...
При таких изменениях кеш живет только на то время пока он нужен и не мешает при выполнении запросов по InventTrans - так что про багу можно забыть. (Баг проявлялся потому что кеш жил и после того как отработал метод UpdateNow() семейства классов InventUpdate - как правило в разносках проявлялось - теперь мы его своевременно убиваем и он не мешает)