Цитата:
Сообщение от
oleggy
Спасибо. Резюмирую:
Не правильный вывод. Перемудрили...
Если нужен просто тупой перебор ВСЕХ узлов конкретной ветки AOT, то это делают так
X++:
static void job_Test(Args _args)
{
utilElements utilElements;
int totalI;
TreeNode treeNode;
TreeNode node;
;
info("Scan AOT");
totalI = 0;
treeNode = treeNode::findNode(@"\Forms");
node = treeNode.AOTfirstChild();
while (node)
{
info(strFmt("Name = %1", node.AOTname()));
// debug
totalI++;
if (totalI > 10) break;
node = node.AOTnextSibling();
}
info('end');
}
Таблицы UtilElements и UtilIdElements имеет смысл использовать, если сами эти таблицы содержат некую нужную Вам информацию. Цель их использования вовсе не в том, чтобы сканировать вообще ВСЕ. Цель их использования - это сократить время поиска нужной информации
Например, если Вам нужна информация только о том, кто последний раз менял объект, то это поле этой самой таблицы UtilIdElements.ModifiedBy. Вам НЕ НАДО обращаться к самому объекту. Нужная информация уже есть в таблице. Кстати, и имя объекта также есть в таблице