| 
	 | 
| 
			
			 | 
		#1 | 
| 
			
			 Axapta Retail User 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Есть некий Map. Одно поле map-а для одной таблицы привязано через mapping к ее реальному полю, а для другой таблицы нет (просто нет такого реального поля). В коде идет обращение к полю Map-а и, соответсвенно, хочется как то проверить а есть ли у этого поля Map-а привязка... Как это лучше сделать? 
		
		
		
		
		
		
		
	P.S. С Новым годом!  
		 | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Может посмотрите, как это реализовано для русского формата адреса. 
		
		
		
		
		
		
			
		
		
		
		
	(там используется класс \Classes\MapToAddressField_RU для построения Map (уже класса, а не карты соответствия) с перечнем полей, для которых есть mapping.  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			В классе Global есть метод mappingExists_RU. В российском DIS слое
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Axapta v.3.0 sp5 kr2  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Sergey Petrov (1), plumbum (1). | |
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Тоже верно  
		
		
		
		
		
		
			
		
		
		
		
	![]() И намного проще  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Axapta Retail User 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасиба!  
		
		
		
		
		
		
		
	 
		 | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Можно 
		
		
		
		
		
		
			
		
		
		
		
	X++: // If '_mapField' and '_tableField' are empty: true if the '_mapId' map have a mapping for table '_tableId' // If '_mapField' is not empty: true if the '_mapId' map have a mapping for it's field '_mapField' for table '_tableId' // If '_tableField' is not empty: true if the '_mapId' map have a mapping for table's field '_tableField' for table '_tableId' // If '_mapField' and '_tableField' are not empty: true if '_mapField' is a mapping for '_tableField' on map '_mapId' for table '_tableId' static public boolean mappingExists_RU(tableId _mapId, tableId _tableId, fieldId _mapField = 0, fieldId _tableField = 0) { boolean ok; Map map = MappingsInfo_RU::createMapWithFieldId( _tableId, _mapId); identifiername fieldName; ; if (! map.empty()) { if (_mapField || _tableField) { if (_mapField && _tableField) { fieldName = fieldid2name(_mapId, _mapField); if (map.exists(fieldName) && (map.lookup(fieldName) == _tableField)) { ok = true; } } else if (_mapField) { if (map.keySet().in(fieldid2name(_mapId, _mapField))) { ok = true; } } else if (_tableField) { if (map.valueSet().in(_tableField)) { ok = true; } } } else { ok = true; } } return ok; }  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Hyper (1). | |
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо за мгновенный ответ. 
		
		
		
		
		
		
		
	Мне почему-то представлялось, что существует гораздо более красивый и простой способ проверки наличия привязки поля map к таблице...  | 
| 
	
 |