Показать сообщение отдельно
Старый 23.01.2024, 12:36   #481  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
InventCostReferenceCategoryCache для ключей Map по RecId использует Types::Integer
Класс InventCostReferenceCategoryCache активно используется в закрытии склада для кэширования соответствия InventTransOriginId -> InventTransOrigin.ReferenceCategory (перечисление InventTransType). Случайно тут увидел, что тип ключа для map используется "немного не тот":
X++:
public void new()
{
    map = new Map(Types::Integer, Types::Enum);
}
Такой фортель в подавляющем большинстве случаев сходит с рук, потому что RecId вида 0x1500031FC превращается в 0x500031FC (5637157372 -> 1342190076, убрали 2^32), и уникальность сохраняется, но всё же как-то, доктор, неаккуратненько...

AX2012 R3
За это сообщение автора поблагодарили: S.Kuskov (2), Logger (5), Raven Melancholic (2).