Ага, а ответ то нашелся
Слетают права при импорте проекта , спасибо Wamr, он гений.
Я не знаю как это все работает, но это работает!
У меня получились вот такие методы:
Метод getLabel
X++:
str 30 getLabel(Object _control)
{
switch (classIdGet(_control))
{
case classnum(FormBuildStringControl):
case classnum(FormBuildCheckBoxControl):
case classnum(FormBuildGroupControl):
case classNum(FormBuildRealControl):
case classNum(FormBuildIntControl):
case classNum(FormBuildComboBoxControl):
case classNum(FormBuildWindowControl):
case classNum(FormBuildDateControl):
case classNum(FormBuildListBoxControl):
case classNum(FormBuildTimeControl):
return _control.label();
case classNum(FormBuildRadioControl):
case classNum(FormBuildTabPageControl):
return _control.caption();
case classNum(FormBuildButtonControl):
case classNum(FormBuildCommandButtonControl):
case classNum(FormBuildMenuButtonControl):
case classNum(FormBuildFunctionButtonControl):
return _control.text();
default :
return _control.name();
}
return _control.name();
}
дальше fillMap
X++:
void fillMap(Object _containerControl)
{
int i;
Object fbc;
for( i = 1; i <= _containerControl.controlCount(); i ++)
{
fbc = _containerControl.controlNum(i);
if(fbc.isContainer())
element.fillMap(fbc);
else
{
name2label.insert(fbc.name(), element.getLabel(fbc));
}
}
}
дальше CreateLabelMap
X++:
void CreateLabelMap(Args _args)
{
Args args = new Args();
SysSecurityFormControlTable SysSecurityFormControlTable1;
SysSecurityFormTable SysSecurityFormTable1;
if(_SysSecurityFormTable)
{
args.name(_SysSecurityFormTable.FormName);
fr = ClassFactory::formRunClassOnClient(args);
fbd = fr.form().design();
name2label = new Map(Types::String, Types::String);
element.fillMap(fbd);
}
}

!