| 
			
			 | 
		#1 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
			
			
			Lookup в другую компанию
			 
			
			Привет. 
		
		
		
		
		
		
		
		
			При попытке сделать лукап на справочник в другую компанию с помощью связей на таблице столкнулся с забавным поведением Аксы. Если поле не заполнено, лукап прекрасно отрабатывает по связям. Но если в поле уже есть значение, открывается лукап, в котором присутствуют значения из текущей компании и значения из другой компании.   Кто-нить может что-нить сказать по этому поводу? ![]() PS AX3SP6 Последний раз редактировалось CDR; 17.12.2007 в 15:37.  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Злыдни 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну, например, так: 
		
		
		
		
		
		
		
	
  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А может можно сделать saveDataPerCompany = No для  этой таблицы?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Вообщем-то, ни для новой таблички, ни для EmplTable этого сделать нельзя. Потому как данные как-раз таки должны хранится отдельно по компаниям. 
		
		
		
		
		
		
		
	Чудеса какие-то... Не иначе, как понедельник виноват. Видимо придется завтра с утра на свежую голову разбирацо  
		 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я делал такой лукап - все нормально работало - вне зависимости от того, есть значение в поле или нет. На более раннем СП 
		
		
		
		
		
		
			
		
		
		
		
	Поэтому ищите ошибку у себя. Вы перекрываете лукап? или как?  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			2 CDR: 
		
		
		
		
		
		
			
		
		
		
		
	Перечитал только что ваши сообщения - я по-другому делал: Перекрывал лукап, и делал changeCompany('ljl') { super() }  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Member 
		
			
	 | 
	
	
	
		
		
		
		 
			
			kashperuk-у лишь бы покодить... 
		
		
		
		
		
		
			Вообще стандартные связи работают. Можно посмотреть в журнале ГК пример. Есть гипотеза, что у вас поле в таблице, с которым вы мучаетесь, на базе расширенного типа создано, для которого прописаны связи. Обычно в таких случаях бывают проблемы. Проверьте. Для чистоты связей нужно использовать в поле таблицы расширенный тип без связей, а связь настраивать на таблице. Посмотрите в тех же журналах ГК. Там компания на базе расширенного типа (связь работает всегда даже при незаполненных других полях), а сам счет, договора и проч. ерунда — на базе расширенного типа без связей и связь прописана на таблице (в результате поля работают только в связке с другими). Это не спроста так сделано. 
				__________________ 
		
		
		
		
	С уважением, glibs®  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Member 
		
			
	 | 
	
	
	
		
		
		
		 .(I regret) 
				__________________ 
		
		
		
		
	С уважением, glibs®  | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я тоже использовала changeCompany()  
		
		
		
		
		
		
		
	  все работает!
		 | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Злыдни 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я дико извиняюсь за свою серость, но хотел бы уточнить 2 момента:  
		
		
		
		
		
		
		
	1. В качестве примера, насколько я понял, приведен лукап счета в строках журнала ГК. Однако на первый взгляд все лукап-методы на форме строк журнала ГК реализованы программно на соответствующих таблицах. И в этих методах недвусмысленно присутствует конструкция setDefaultCompany() Я чего-то не вижу? 2. До настоящего момента я был твердо уверен, что отображение информации и доступ к ней в Аксапте возможен только в рамках текущей компании. Способов изменить это поведение я знаю 3: saveDataPerCompany на таблице, setDefaultCompany() и changeCompany() в коде. Во всех мануалах по Х++ и Аксе (в частности, Inside Dynamics AX 4.0) это декларируется. Я сейчас, конечно, поэкспериментирую, но Ваше заявление, glibs, как обухом по голове, честное слово :-) Вековые устои руаштся.....  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Злыдни 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Работает.... Обалдеть можно...  
		
		
		
		
		
		
		
	 
		 | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Member 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну вы, пиплы, даете. 
		
		
		
		
		
		
			Слов нету. Осталось еще только на стандартные лукапы забить и писать везде свои. Обратите внимание, что Кашперукский метод работает только в форме, а стандартные relations работают даже в обозревателе таблицы. 
				__________________ 
		
		
		
		
	С уважением, glibs®  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Yprit (1). | |
| 
			
			 | 
		#15 | 
| 
			
			 Злыдни 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 Member 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Yprit
			
			 
... 
		
	Способов изменить это поведение я знаю 3: saveDataPerCompany на таблице ... 
				__________________ 
		
		
		
		
	С уважением, glibs®  | 
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 Злыдни 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#18 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Странно... С помощью связей на таблице так и не удалось добиться стабильной работы лукапа в другую компанию.  
		
		
		
		
		
		
		
	![]() Если в поле пусто - лукап отрабатывает на ура. Если в поле уже указано значение, почему-то открывается лукап в текущую компанию + одно значение из нужной компании, которое уже указано в поле. Пришлось сделать в лукапе changeCompany() перед super().  | 
| 
	
 | 
| 
			
			 | 
		#19 | 
| 
			
			 Злыдни 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#20 | 
| 
			
			 MCTS 
		
			
	 | 
	
	|
| 
	
 |