AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.03.2023, 11:08   #1  
DaniilT is offline
DaniilT
Участник
 
68 / 12 (1) ++
Регистрация: 28.04.2020
Ошибка. Объект "SecurityKeySet" не может быть создан
Добрый день. Хочу выполнить следующий код. Но axapta выдает ошибку:
Объект "SecurityKeySet" не может быть создан
Кто-нибудь сталкивался с тем, что не мог создать экземпляр класса SecurityKeySet ?
Код выполняю на Ax2012.
Изначально, мне нужно определить имеет ли доступ пользователь к классу или форме.
Начал искать как это сделать через код(мне так нужно). Наткнулся на учебный пример, связанный с классом SecurityKeySet.
Но выполнить его не получается из-за ошибки.
Код:
X++:
static void Job323(Args _args)
{
    SecurityKeySet  securityKeySet; 
    AccessType      accessType;
    UserId          userId      = curUserId();
    TableId         tableId     = tableNum(CustTable);
    ;

    securityKeySet = new SecurityKeySet(); 
    securityKeySet.loadUserRights(userId);

    accessType = securityKeySet.tableAccess(tableId);

    info(strFmt('%1', accessType));
}

Последний раз редактировалось DaniilT; 21.03.2023 в 11:14.
Старый 21.03.2023, 11:32   #2  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Попробуйте метод hasTableAccess()
Только нужно указать в параметре, какой конкретный уровень доступа необходим. По умолчанию AccessType::View.
__________________
// no comments

Последний раз редактировалось dech; 21.03.2023 в 11:50.
Старый 21.03.2023, 11:51   #3  
LETTO is offline
LETTO
Участник
 
318 / 64 (3) ++++
Регистрация: 14.07.2022
Погуглил чуть. Есть такая проблема, но ответа нет. Видимо со старых версий перекочевал код (а может CIL нужен или еще что). У меня тоже ошибку выдает.
Проверить права на таблицу для текущего пользователя можно по другому (правда только для текущего):
1. securityRights.tableAccessRight()
2. sysDictTable.Rights()
3. hasTableAccess()
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
D365FO - Ошибка "A valid value for parameter "PSAVendorTxt" does not exist" при предварительном просмотре заказа на покупку MarinaAX DAX: Программирование 3 05.09.2017 17:48
Ошибка "Неправленые типы аргументов" Dimitry DAX: Программирование 4 20.09.2012 08:17
Ошибка в пакетном сервере для "Logon" в COM-объекте класса "MAPI.Session" Bega DAX: Программирование 0 02.08.2012 10:30
Ошибка времени выполнения: В NumberSeqReference_Empl_RU (Объект), не найден исполнимый код метода "loadModule" Ksju DAX: Функционал 14 21.10.2009 13:00
Ошибка "Машинной даты" Vals DAX: Администрирование 5 12.09.2007 12:20
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:39.