| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Поиск контрола в dialog
			 
			
			Добрый день коллеги. Такой вопрос  У меня есть родительский класс в котором в методе dialog строиться динамическая форма  От этого родительского класса я создал дочерний перекрыл метод dialog и хочу переименовать один из созданных контролов  который был определен в родительском методе. Подскажите как к нему добраться. Ниже описан dialog родительского класса мне нужно переименовать в своем классе контрол с именем myControl 
		
		
		
		
		
		
		
	public Object dialog() { ; dialog = super(); dialog.windowType(FormWindowType::Workspace); dialog.addGroup('@SYS54716'); dialogToDate = dialog.addFieldValue(typeid(dateOnHand), toDate); fieldDimCenter = dialog.addFieldValue(typeid(DimCenterId), DimCenterId); dialog.addGroup('@SYS13865'); dialogByGroup = dialog.addFieldValue(Typeid(NoYes), ByGroup, "@SYS12006"); dialogByAccounts = dialog.addFieldValue(Typeid(NoYes), ByAccounts, "Счет"); dialogByCenter = dialog.addFieldValue(Typeid(NoYes), ByCenter, "@SYS13911"); dialogByLocation = dialog.addFieldValue(Typeid(NoYes), ByLocation, "@SYS6437"); dialogByOverallsCategoryId = dialog.addFieldValue(Typeid(NoYes), byOverallsCategoryId, "Категория СО"); dialog.addGroup('@CSS334'); dialogShowReceiptDate = dialog.addFieldValue(Typeid(NoYes), showReceiptDate, 'Дата послед. прихода на склад',"@NDU553","myControl"); dialogShowExpenceDate = dialog.addFieldValue(Typeid(NoYes), showExpenceDate, "@NDU554"); dialogShowOverallsCategoryId = dialog.addFieldValue(Typeid(NoYes), showOverallsCategoryId, "Категория СО"); dialogDimGroup = inventDimParm.addFieldsToDialog(dialog,"@SYS53654",false,false,'',null,param); return dialog; }  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			я бы в родительском классе сделал метод myControlName, возвращал бы стандартное имя 
		
		
		
		
		
		
		
	а в новом классе просто переопределил бы этот метод  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ваш совет наверно был бы рациональней  , но проблему решили с помощью кода представленного ниже в дочернем классе 
		
		
		
		
		
		
		
	public Object dialog() { Object ret; DialogRunbase dialogloc; formCheckBoxControl dl; FormControl recurseGet(Object _parent, name _ctrlname, int _depth = 1) { int i; str name; str caption; str dashes; FormControl result; FormControl bcontrol; ; if (SysTest::hasMethod(_parent, identifierStr(name))) { if (_ctrlname == _parent.name()) { bcontrol=_parent; return bcontrol; } } // Escape condition! if (_parent.controlCount() == 0) return null; // Recursive statement for (i=1; i<=_parent.controlCount(); i++) { result = recurseGet(_parent.controlNum(i),_ctrlname, _depth+1); if (result!=null) return result; } return null; } ; ret = super(); dialogloc = ret; dl = recurseGet( dialogloc.dialogForm().form().design(),"myControl"); dl.label('Дата послед. прихода на табельный номер'); return ret; }  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 X++: public Object dialog() { Object ret; ret = super(); dialogShowReceiptDate .label('Дата послед. прихода на табельный номер'); return ret; }  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Выражаю всем огромную благодарность за помощь
		 
		
		
		
		
		
		
		
	 | 
| 
	
 |