| 
			
			 | 
		#1 | 
| 
			
			 Дмитрий Ерин 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Прошу прощения за дублирование этого сообщения (первоначально оно было в теме "Программирование в среде MorphX..."), но из-за особенностей навигации на сайте этот форум - "Программирование в Аксапта (дороботка)" - посещается гораздо чаще. 
		
		
		
		
		
		
		
	Вопрос такой: есть класс, в который при создании передается параметром ДатаСорс формы. А в этом классе необходимо получить доступ к таблице этого ДатаСорса. Именно к таблице, то есть к объекту типа Common. Нужно это для того, чтобы потом можно было выполнять такие запросы к этой таблице: PHP код: 
	
			
	 | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
			
			
			можно попробовать так
			 PHP код: 
	
			
	 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
			
			
			можно так
			 PHP код: 
	
			
	 | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			поищи в AOT такой текст 
		
		
		
		
		
		
		
	switch (_common.tableId) и надешь кучу примеров  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Дмитрий Ерин 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Так мне-то наоборот нужно  
		
		
		
		
		
		
		
	![]() В указанных примерах тип таблицы указан ЯВНО: SalesTable salesTable; так то оно без проблем работает. А нужно, чтобы тип таблицы заранее не был известен, а передавалась она как-то через FormDataSource... Идентификатор ее я могу вытащить через DataSource.table(), но вопрос в том, как из него получить объект Common, а не заранее известный тип таблицы...  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 ---------------- 
		
			
	 | 
	
	
	
		
		
			
			
			RTFM - System Documentation\ Classes\ FormDataSource
			 
			
			FormDataSource.cursor() 
		
		
		
		
		
		
		
	а можно еще воспользоваться Query & QueryRun для получения данных по известному TableId  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Дмитрий Ерин 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо! 
		
		
		
		
		
		
		
	cursor() действительно работает!  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Изначально опубликовано Ruff  
cursor() действительно работает! Для более подробного ответа, необходимо знать подробности вашей задачи. 
				__________________ 
		
		
		
		
	Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Дмитрий Ерин 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Изначально опубликовано Maxim Gorbunov  
Лучше создать еще один объект, и делать select'ы по нему. Для более подробного ответа, необходимо знать подробности вашей задачи. А вот насчет "создать еще один объект" хотелось бы поподробнее, если можно...  | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			А вот насчет "создать еще один объект" хотелось бы поподробнее, если можно...
		
	 
 | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Изначально опубликовано Ruff  
А вот насчет "создать еще один объект" хотелось бы поподробнее, если можно... PHP код: 
	
			
	
				__________________ 
		
		
		
		
	С уважением, Игорь Ласийчук.  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Чтобы понять, что я имел в виду, под фильтрацией буфера, проведите маленький эксперимент: 
		
		
		
		
		
		
			
 А теперь представьте, что вы генерируете более сложные запросы. Представьте, что будет видеть пользователь! Вместо этого, предлагаю вам создать новый буфер и читать данные из него. Если вы хотите добиться полной универсальности, воспользоваться можно следующим способом (вставьте в тот же самый метод clicked()): PHP код: 
	
			
	
				__________________ 
		
		
		
		
	Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Дмитрий Ерин 
		
			
	 | 
	
	
	
		
		
			
			
			Не понимаю механизма...
			 
			
			2 Garic: 
		
		
		
		
		
		
		
	Цитата: 
	
		
			 Common   common = _formDS.cursor().data();
		
	 
Хотя так и не понял смысла метода data(). Он дублирует всю таблицу? То есть, это как бы новый экземпляр? 2 Maxim Gorbunov: А чем отличается common = dictTable.makeRecord(); от, скажем, common = InventTable_ds.cursor().data() ?  | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Из Online Help про метод data(): 
		
		
		
		
		
		
			Цитата: 
	
		
			Returns only the data part of the record. Is used to copy data from one record buffer to another rather than making the new buffer into a pointer to the buffer copied from. The buffer copied to has no database position or locks.
		
	 
				__________________ 
		
		
		
		
	Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me  | 
| 
	
 |