Кстати, для 2009-й джобик будет чуть чуть другим.
Оформил в виде метода для Global
X++:
// [url=http://axforum.info/forums/showthread.php?p=97771#post97771]Как получить из элемента enum-а код типа (enum-а)?[/url]
// pkoz 27.02.2008
static EnumId GRD_GetEnumId(AnyType enum)
{
ContainerClass contClass;
str sEnum;
EnumId enumId = 0;
;
if (typeOf(enum) != Types::Enum)
return 0;
contClass = New ContainerClass([enum]);
sEnum = BinData::dataToString(contClass.toBlob());
// if (sEnum && strlen(sEnum) == 12)
if (sEnum && strlen(sEnum) == 14) //+переход на 2009-ю // pkoz 05.08.2011
{
// if (hex2int(substr(sEnum, 1, 2)) == 0x07 && hex2int(substr(sEnum, 3, 2)) == 0x04)
if (hex2int(substr(sEnum, 1, 2)) == 0x07 && hex2int(substr(sEnum, 5, 2)) == 0x04) //+переход на 2009-ю // pkoz 05.08.2011
{
// enumId = (hex2int(substr(sEnum, 9, 2)) << 8) | hex2int(substr(sEnum, 7, 2));
enumId = (hex2int(substr(sEnum, 11, 2)) << 8) | hex2int(substr(sEnum, 9, 2)); //+переход на 2009-ю // pkoz 05.08.2011
}
}
return enumId;
}