Вот такой код получился. С переименованием и удалением не стал возиться.
Результат меня устраивает.
Подкидываем проект.
Создаётся ещё один проект с префиксом CopyOf+старое_название.
Просто у меня как раз к примеру из 1000 объектов в проекте получается проект в котором нужно 100. Я думал сначало удалением, но и пересоздание меня тоже устравивает.
X++:
static void MRD_SearchProject(Args _args)
{
str project = 'MRD_Tables';
ProjectNode oldProject;
str nameKey;
configurationKeyId id;
ProjectNode sharedProjects;
ProjectNode newProject;
void getTreeNode(TreeNode _treeNode)
{
TreeNode node1;
TreeNodeIterator treeNodeIterator1 = _treeNode.AOTiterator();
node1 = treeNodeIterator1.next();
while(node1)
{
if(node1.handle() == classNum(ProjectGroupNode))
{
getTreeNode(node1);
}
else
{
if (node1.AOTname() != "fdjh")
newProject.addUtilNode(node1.applObjectType(), node1.AOTname());
}
node1 = treeNodeIterator1.next();
}
}
;
sharedProjects = infolog.projectRootNode().AOTfindChild('Shared');
sharedProjects.AOTAdd("CopyOf" + project);
newProject = sharedProjects.AOTfindChild("CopyOf" + project);
newProject.loadForInspection();
newProject = newProject.getRunNode();
oldProject = sharedProjects.AOTfindChild(project);
if(oldProject)
{
oldProject = oldProject.loadForInspection();
getTreeNode(oldProject);
}
newProject.AOTsave();
}
Всем спасибо.