![]() |
#7 |
MCTS
|
Цитата:
как можно программно определить имеется-ли лицензия на опрделенный объект в AOT (принадлежность к модулю, на который имеется лицензия).
Если конфигурационный ключ не имеет лиц. кода, то считается, что лицензия есть. Таким образом, чтобы посмотреть имеет ли лицензия на объект, надо рекурсивно пробежаться по конф. ключам, и у родительского посмотреть, есть ли лицензия. Пример для таблиц (для другого типа, просто меняем первую строку на нужный тип объекта): X++: DictTable dictObject = new DictTable(tablenum(SmmBusRelTable)); SysDictLicenseCode SysDictLicenseCode; ConfigurationKeyId getParentCKId(ConfigurationKeyId _keyid) { ConfigurationKeyId ret; DictConfigurationKey key; ; key = new DictConfigurationKey(_keyId); if (key.parentConfigurationKeyId()) ret = getParentCKId(key.parentConfigurationKeyId()); else ret = _keyId; return ret; } ; if (dictObject.configurationKeyId()) { sysdictLicenseCode = new SysDictLicenseCode( new DictConfigurationKey(getParentCKId(dictObject.configurationKeyId())).licenseCode()); info(strfmt("%1", sysDictLicenseCode.isEntered())); } else info("true"); смотрим включен ли конфигурационный ключ. Для конфигурационных ключей с выключенными лицензионнами кодами конф. ключ будет выключен, причем независимо от соответствующего свойства, выставленного для него в АОТе. Последний раз редактировалось Eldar9x; 03.04.2009 в 09:33. |
|
|
За это сообщение автора поблагодарили: Dima_Dima (1). |