|
![]() |
#1 |
Участник
|
Скопировал нижележащие слои в OLD, и всё получилось.
Прилагаю решение: X++: static void ADM_Compare_layers(Args _args) { #AOT boolean fnCompare(UtilElements _utilElements) { TreeNode curLevelTreeNode, oldLevelTreeNode; SysComparable comparable1, comparable2; ; curLevelTreeNode = SysTreeNode::findNodeInLayer(_utilElements.recordType, _utilElements.name, _utilElements.parentId, UtilEntryLevel::var, true, false); oldLevelTreeNode = SysTreeNode::findNodeInLayer(_utilElements.recordType, _utilElements.name, _utilElements.parentId, UtilEntryLevel::var, true, true); comparable1 = SysTreeNode::newTreeNode(curLevelTreeNode); comparable2 = SysTreeNode::newTreeNode(oldLevelTreeNode); return SysCompare::silentCompare(comparable1, comparable2); } void fnLoopObj(UtilElementType _recordtype) { UtilElements utilElementsCUS, utilElementsVAR; SysOperationProgress p = new SysOperationProgress(); ProjectListNode projectsNode; ProjectNode projNode; Treenode rootNode, itemNode; str treePath; ; projectsNode = SysTreenode::getPrivateProject(); projNode = projectsNode.AOTfindChild('testProj'); switch (_recordType) { case UtilElementType::Table: treePath = #TablesPath; break; case UtilElementType::Class: treePath = #ClassesPath; break; case UtilElementType::Form: treePath = #FormsPath; break; case UtilElementType::Menu: treePath = #MenusPath; break; } rootNode = Treenode::findNode(treePath); select count(RecId) from utilElementsCUS where 1 == 1 && utilelementsCUS.recordType == _recordType && utilElementsCUS.utilLevel == UtilEntryLevel::cus; p.setTotal(utilElementsCUS.RecId); while select utilElementsCUS where 1 == 1 && utilelementsCUS.recordType == _recordType && utilElementsCUS.utilLevel == UtilEntryLevel::cus // && utilElementsCUS.name != 'CustVendTable' { p.incCount(); select utilElementsVAR where utilelementsVAR.recordType == utilelementsCUS.recordType && utilElementsVAR.utilLevel == UtilEntryLevel::var && utilelementsVAR.name == utilElementsCUS.name; if (utilElementsVAR.RecId) { if (!fnCompare(utilElementsCUS)) { info(strfmt('%1\t%2', utilelementsCUS.recordType, utilElementsCUS.name)); itemNode = rootNode.AOTfindChild(utilElementsCUS.name); projNode.addNode(itemNode); } } } projNode.AOTsave(); } ; // fnLoopObj(UtilElementType::Table); fnLoopObj(UtilElementType::Class); // fnLoopObj(UtilElementType::Form); // fnLoopObj(UtilElementType::Menu); } |
|