25.06.2013, 11:41 | #1 |
Участник
|
Как принудительно обновить Content pane ?
Всем привет.
Обнаружил неприятную багу в Аксапте. При смене компании не обновляется содержимое content pane. Как следствие, если пользователь залогинился в одной компании, в которой у него урезан доступ к определенным пунктам меню, а затем переключился к другой компании, то пункты меню не появляются При этом sidax и старое трешечное меню X++: TreeNode TreeNode; ; TreeNode = TreeNode::findNode(@"\Menus\MainMenu"); if (TreeNode) { TreeNode.AOTrun(); } Т.е. права доступа настроены корректно. Как бы мне явно сбросить content pane. P.S. Ax2009 build 1500.4570 (RU7) |
|
25.06.2013, 11:43 | #2 |
Участник
|
Если сразу логинимся во 2-й компании то все пункты меню видны. Но при переключении в 1-ю - не пропадают.
|
|
25.06.2013, 14:19 | #3 |
Участник
|
может вот это поможет
X++: static void HideShowContentFrame(boolean _hide = false) { #WinApi HWND contentPane = WinApi::findWindowEx( WinAPI::findWindowEx(infolog.hWnd(), 0, 'MDIClient', ''), 0, 'ContentFrame', ''); if (contentPane) if (_hide) WinApi::ShowWindow(contentPane, #SW_HIDE); else WinApi::ShowWindow(contentPane, #SW_SHOW); }
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
|
За это сообщение автора поблагодарили: Logger (2), IKA (1). |
27.06.2013, 13:36 | #4 |
Участник
|
Неужели никто не сталкивался с такими проблемами ?
По сути - права доступа не работают при переходе между компаниями. Либо я чего-то не понимаю, либо глюк проявляется при каких-то особых условиях. |
|
27.06.2013, 16:18 | #5 |
Участник
|
Может чего не понимаю... но разве права не общие для всех компаний?
Такие таблички как UserGroupInfo, UserInfo, UserGroupList, SysSecurityFormTable, SysSecurityFormControlTable, AccessRigthList не имеют dataAreaId... или у вас разные домены DOMAINID? |
|
27.06.2013, 16:23 | #6 |
Участник
|
Права как выяснилось работают корректно.
Это системное окошко contentPane некорректно отрисовывается. При этом если попытаться ткнуть в пункт меню который остался отрисованным после переключения в компанию где он запрещен, то Аксапта выдает Messagebox : "Недостаточно прав доступа" т.е. права все же работают. P.S. у нас включены домены и компании сидят в разных доменах. |
|
27.06.2013, 16:40 | #7 |
Участник
|
У нас такого чуда нет...
Скрытие и отображение рабочего пространства предложенного pustik явно не покатит... Можно посмотреть в сторону: xInfo.createWorkspaceWindow Method Opens a new workspace window. For example, this enables you to open different sets of application objects in different windows, or to work with two different sets of company accounts. ... и привязать энту штуку к смене компании как вариант или забить... права же работают. |
|
27.06.2013, 16:43 | #8 |
Участник
|
Да пробовал уже так.
Стандартное окошко выбора компании (form sysSelectDataarea) позволяет открыть новую область с выбранной компанией - не помогает. Он походу при старте аксапты где-то кеширует внешний вид окна и дальше только его и показывает. |
|
27.06.2013, 16:54 | #9 |
Участник
|
А почистить кэш не пробовали до того как...
void workspaceWindowDestroyed(int _hWnd) { ... // This method is called when a workspace window is destroyed // here workspace related resources can be cleaned up if (workspaceCacheMap && workspaceCacheMap.exists(_hWnd)) { // clean up the workspace cache object. This is created in the // workspaceCache() function. workspaceCacheMap.remove(_hWnd); } |
|
27.06.2013, 18:10 | #10 |
Участник
|
Нет.
Можно попробовать А почему вы думаете что это может быть связано ? |
|
27.06.2013, 18:52 | #11 |
Участник
|
может быть и потому что
Вообще, если удастся решить эту проблему, возможно, исчезнет необходимость пользователю закрывать Аксапту при редактировании( например, добавление каких-нибудь пунктов в меню) прав его группы в режиме on-line. Правда сбрасывание кэша у пользователя эту проблему не решает. Если отредактируешь права группы, в которую пользователь входит, в тот момент когда он работает, то чтобы увидеть изменения в области содержания ему приходиться прерывать работу и перезапускать Аксапту. Но это уже другая проблема, Извините.(хотя внутренний голос подсказывает, что корни одни и те же )
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. Последний раз редактировалось Pustik; 27.06.2013 в 19:04. |
|
Теги |
content pane |
|
|