Показать сообщение отдельно
Старый 01.07.2008, 15:14   #19  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Вот такой код получился. С переименованием и удалением не стал возиться.
Результат меня устраивает.
Подкидываем проект.
Создаётся ещё один проект с префиксом 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();

}
Всем спасибо.
За это сообщение автора поблагодарили: wojzeh (1), S.Kuskov (5).