Еще был интересный баг - если узел аот был открыт такой последовательностью вызовов -
X++:
treeNode = xUtilElements::getNode(UtilElements);
treeNode.AOTnewWindow();
то потому его в проект не запихнешь никаким образом.
Видимо причина в том что метод xUtilElements::getNode() достает узел с определенного слоя
X++:
static TreeNode getNode(UtilElements _utilElements)
{
return new xInfo().getNode(_utilElements.RecordType,
_utilElements.Name,
_utilElements.ParentId, 0,
_utilElements.UtilLevel,
true, 0);
}
И ядро считает неверным пихать его в проект (на более нижнем слое объект даже называться может по-другому.
А если написать так :
X++:
treeNode = xUtilElements::getNode(UtilElements);
treeNode = infolog.findNode( treeNode.treeNodePath() ); // берем с текущего слоя
treeNode.AOTnewWindow();
то все ок.