Немножко присоседюсь к Ивану

Показалось напряжным запускать пиклист заново, когда хочется посмотреть реализацию метода сразу в нескольких классах. Внёс небольшую модификацию, использовав SysInfoAction_Editor. По ходу получилось своеобразное инфолог-меню, которое можно подержать на экране, щелкая по строчкам. Ну, и добавил заодно доступ и к самим классам в целом (а не только к конкретному методу).
X++:
switch (descendents.elements())
{
case 0:
info(strFmt(@"The method '%1' is not overridden in any of the %2 descendent classes", methodName, descendentsCount));
break;
case 1:
descendentsEnumerator = descendents.getEnumerator();
if (descendentsEnumerator.moveNext())
treeNode = TreeNode::findNode(descendentsEnumerator.currentKey());
break;
default:
// Gustav -->
//treeNode = TreeNode::findNode(pickList(descendents, "@SYS24724", @"Pick required class to go to method definition"));
info(strRep('-', 100));
info(' Double click required string to go to method or class definition: ' );
info(strRep('-', 100));
descendentsEnumerator = descendents.getEnumerator();
while (descendentsEnumerator.moveNext())
{
treeNode = TreeNode::findNode(descendentsEnumerator.currentKey());
info( strFmt('CLASS: %1', subStr( treeNode.AOTparent().treeNodePath(),10,100 )),
'', SysInfoAction_Editor::newOpen( treeNode.AOTparent().treeNodePath() ));
info( strFmt('%1 METHOD: %2', strRep('-', 50), treeNode.treeNodeName() ),
'', SysInfoAction_Editor::newOpen( treeNode.treeNodePath() ));
}
}
if(descendents.elements()<=1)
{
if (treeNode && SysTreeNode::hasSource(treeNode))
treeNode.AOTedit();
}
// Gustav <--
Проверить можно, например, открыв метод AssetId класса InventMovement и выполнить для него этот скрипт.