| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			args().caller()...
			 
			
			Существует форма (без ДС) запускающая репорт. 
		
		
		
		
		
		
		
	Как узнать, что репорт был запущен именно из этой формы, т.к. на этой форме есть метод который возвращает табличный буфер.  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			if (SysTest::hasMethod(object, "myMethod")) 
		
		
		
		
		
		
			{ ... } 
				__________________ 
		
		
		
		
	aLL woRk aNd nO JoY MAKes jAck a dULL Boy  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			args().caller().name() == formstr(НазваниеФормы)
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Извините за беспокойство, ответ нашелся на форуме 
		
		
		
		
		
		
		
	Object obj = _args.caller() ; ; if (obj && classidget(obj) == classNum(sysSetupFormRun) && obj.name() == formstr(<YourForm>)) { }  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: mazzy (2). | |
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Можно при помощи SysDictClass.hasObjectMethod перед вызовом метода проверять есть ли он у данного объекта. Тогда отчёт можно будет вызывать и из других мест при условии если там также реализован необходимый метод
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Caramba (1). | |
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Лучше задуматься над тем, для чего в отчет тянуть табличный буфер из формы, у которой даже нет datasource'а, для чего вообще нужна тогда эта форма? Если только для ввода дополнительных параметров выполнения отчета, то можно сделать отчет интерактивным и реализовать на нем вывод диалога для ввода параметров.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			SysDictClass в общем случае не позволит узнать о существовании метода на форме (за исключением методов, реализованных в классе SysSetupFormRun), для форм есть специально обученный метод Form::formRunHasMethod() и обертка для него - Global::formHasMethod(). Вообще же, по-моему, если хочется гибкости во взаимодействии с вызывающими объектами, то предпочтительнее работать через какой-нить интерфейс, тогда будут проверяться сигнатуры методов целиком, а не просто их название, причем еще на этапе компиляции тех классов, которые реализуют интерфейс. Но и тут с формами засада: хотя для них и можно указать, что якобы они реализуют тот или иной интерфейс, однако, и компилятор это никак не проверяет, и SysDictClass не способен во время выполнения это определить.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Pustik (2), S.Kuskov (3), Caramba (1). | |
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Необходимо переопределять лукап-медод, в котором условие меняются А как это делается не знаю  | 
| 
	
 |