| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Фильтр в Lookup по полю другой таблицы
			 
			
			Есть такая проблема: необходимо в Lookup выводить только те записи, у который доп. поле справочника имеет определенное значение. 
		
		
		
		
		
		
		
	Например - показать все переносы, у складов назначения которых не стоит флаг "обязательное пополнение". (Разумеется, в реале имеется в виду новое добавленное поле "временный склад", поле склад назначения в заголовке перемещения - так же доработка, используемая в определенных ситуациях). Формирую в соответствующем методе прицепление дополнительного источника данных, ставлю фильтр по полю, и... он выводит на форму поле, по которому осуществляется прицепление нового источника данных, а при попытке наложить фильтр - не показывает вообще ничего ![]() Может, кто подскажет?  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Смотрите метод lookupTransIdReturn на таблице InventTrans.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			согласен, красивое решение. в след раз понадобится. проблема в том, что это поле - не часть InventDim, а прямо поле на таблице. Согласен, неправильно и криво. Просто так было сделано по изначальной постановке, а я сейчас разгребаю.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Не совсем понял, в чем проблема, но на всякий случай приведу код - лукап номенклатур, которые не заблокированы по соответствующему модулю 
		
		
		
		
		
		
			
		
		
		
		
	X++: client static void LookupItemIdOnType(FormStringControl _fc, ModuleInventPurchSales _module = ModuleInventPurchSales::Invent) { sysTableLookup sysTableLookup; Query query; QueryBuildDataSource queryBuildDataSource; QueryBuildDataSource queryBuildDataSourceModule; ; sysTableLookup = sysTableLookup::newParameters(tableNum(InventTable), _fc); sysTableLookup.addLookupfield(fieldNum(InventTable, itemId)); sysTableLookup.addLookupfield(fieldNum(InventTable, itemName)); query = new Query(); queryBuildDataSource = query.addDataSource(tableNum(InventTable)); queryBuildDataSourceModule = queryBuildDataSource.addDataSource(tableNum(InventTableModule)); queryBuildDataSourceModule.addLink(fieldNum(InventTable, ItemId), fieldNum(InventTableModule, ItemId)); queryBuildDataSourceModule.addRange(fieldNum(InventTableModule, ModuleType)).value(queryValue(_module)); queryBuildDataSourceModule.addRange(fieldNum(InventTableModule, Blocked)).value(queryValue(NoYes::No)); sysTableLookup.parmQuery(query); sysTableLookup.performFormLookup(); } Как видите, фильтр накладывается на доп. таблицу, при этом поле не выводится в лукапе.  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо. 
		
		
		
		
		
		
		
	Действительно, фильтр работает, хотя на форму из второй таблицы белиберда выводится. вывел просто display-metod туда, и все стало ок.  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			В принципе, тоже рабочий вариант. Просто у меня там других условий и фильтров немеряно кроме этого. поэтому и кодом делал.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 |