Здравствуйте уважаемые.
Сразу оговорюсь что работаем под Ax 3.0 SP3. Стоит Tabax без модификаций последний из доступных под 3. Установил trial AxAssist. Вполне вероятно, что в будущем что-то изменится, но тогда уже и буду решать новую проблему, (привык по мере поступления разрешать)...
А проблема пока собственно в следующем:
Используя Tabax пытаемся вести реестр изменений в AOT. Суть простая берем AxPath и сохраняем соответствующую запись что такой то его изменил. Для получения AxPath пользуюсь классами добавленными как плагины в Tabax. Классы получают ссылку на Caller которым собственно и является Tabax и ищут путь с помощью такого метода
X++:
protected void getAxPath()
{
SysContextMenu context;
TreeNode node;
AxPath_UTX axPath;
;
listChange = new List(Types::String);
if (tabax)
{
if (tabax.currentFormRun())
{
//listChange.addEnd(tabax.AxPath_fromFormRun(tabax.currentFormRun()));
}
else
{
context = tabax.currentSysContextMenu();
if (hasSecurityKeyAccess(securityKeyNum(SysDevelopment), AccessType::Edit) && context)
{
node = context.first();
while(node)
{
listChange.addEnd( node.treeNodePath());
node=context.next();
}
context.finalize();
}
}
}
}
код собственно взял с кнопки Copy на Tabax.
Все работает отлично и извлекает пути как положено, пока... пока не запустишь AxAssist. Обработка выделенных узлов в AOT или проекте отрабатывает нормально, но когда находясь в Editor пытаешься получить путь к методу кода то получаешь список последних выделенных элементов в AOT. Как будто Editor не существует. Соответсвенно така штука работает и на кнопки копировании пути в Tabax. При отключенном AxAssist получаем путь к методу в Editor
context опознается как SysContextMenuTreeNode, при включенном путь к последним выделенным в AOT context опознается как SysContextMenuAOT.
Судя по всему при вызове getCurMethod() Tabax не может определить узел. Может ктоподскажет как с этим бороться?
Буду премного благодарен