| 
			
			 | 
		#1 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
			
			
			Видимость поля
			 
			
			Здравствуйте. Вот такой вопрос. В таблицу добавляем новое поле. Нужно скрыть это поле во всех формах где оно есть, если конфигурационный ключ нашей фирмы не включен. Конечно, можно было бы это сделать и через форму, но ведь легче скрывать поле прямо в самой таблице. Вопрос в том, если вообще это возможно, в какой метод это засунуть. И второй вопрос, следует ли это делать? 
		
		
		
		
		
		
		
		
			ну, или хотя бы как поле таблицы программно сделать невидимым, то есть программно установить Visible этого поля в No? Последний раз редактировалось Eldar9x; 25.01.2007 в 12:10.  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Если у поля заполнить свойство ConfigurationKey то что будет неправильно?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Axapta 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А разве это не приведет к потере данных при отключенном ключе? 
		
		
		
		
		
		
		
	Отключение же просто физически удалит это поле в БД, а не скроет.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Именно так и хотел сделать, но вот это Создание feature key на поле формы 
		
		
		
		
		
		
		
		
			заставило искать другой путь Таким образом (не знаю насчет корректности решения) хочу в методе InitValue до супера проверить конфиг. ключ и отключить видимость поля в самой же таблице, но вот не знаю как обратиться непосредственно к полю... К тому же сообщение oip открыло еще одну проблему...- поэтому программно Последний раз редактировалось Eldar9x; 25.01.2007 в 12:27.  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Eldar9x
			 
 
			Именно так и хотел сделать, но вот это Создание feature key на поле формы 
		
	заставило искать другой путь Таким образом (не знаю насчет корректности решения) хочу в методе InitValue до супера проверить конфиг. ключ и отключить видимость поля в самой же таблице, но вот не знаю как обратиться непосредственно к полю... К тому же сообщение oip открыло еще одну проблему...- поэтому программно В Ax3.0 работают Configuration key и Security key. Возвращаясь к исходному вопросу. Если вы хотите физически удалить данные, то нужно использовать configuration key. Если вы хотите "скрыть", то нужно использовать security key.  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Axapta 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Обратиться можно, например, так: 
		
		
		
		
		
		
		
	X++: static void setVisible(Args _args) { #AOT #define.Visible('Visible') #define.Fields('Fields') #define.No('No') treeNode treeNode; treeNode fieldNode; str properties; str tableName = tableid2Name(tableNum(tableOip)); str fieldName = fieldid2name(tableNum(tableOip), fieldNum(tableOip, field1)); str myTablePath = #TablesPath + '\\' + tableName; str myFieldPath = myTablePath + '\\' + #Fields + '\\' + fieldName; ; treeNode = infolog.findNode(myTablePath); fieldNode = infolog.findNode(myFieldPath); properties = fieldNode.AOTgetProperties(); properties = setProperty(properties, #Visible, #No); fieldNode.AOTsetProperties(properties); treeNode.AOTsave(); }  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Eldar9x (1). | |
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			может тогда просто не давать никому прав на это поле и всё? 
		
		
		
		
		
		
		
		
			можно даже без securityKey - если есть SK на таблице то можно добраться и до поля Последний раз редактировалось belugin; 25.01.2007 в 13:20.  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Axapta 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Таким образом (не знаю насчет корректности решения) хочу в методе InitValue до супера проверить конфиг. ключ и отключить видимость поля в самой же таблице, но вот не знаю как обратиться непосредственно к полю...
		
	 
2. теоретически можно подкорячить Класс SysSetupFormRun и обходить все датасурсы формы скрывая поле.  | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Маззи, спасибо, за объяснение. Oip, огромное спасибо за код, то что надо. Все таки буду делать программно (потом легче отыскать  
		
		
		
		
		
		
		
	 ))); Belugin, что значит не давать прав?, поле должно быть доступно если ключ активен...
		 | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			2 belugin: то есть пресечь проблему в "корне" (т.е. таблице)  не выйдет? Все равно придется копать в сторону форм и классов? На мой взгляд, вполне логично, вырубить поле в случае нактивного конф. ключа прямо там на таблице, а не копаться в различных формах где это поле показывается. То есть обрубаем в корне, исчезает везде...
		 
		
		
		
		
		
		
		
		
			Последний раз редактировалось Eldar9x; 25.01.2007 в 13:35.  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			вот еще идея - создать SK его задать для поля, а у него уже установить CK.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Вас проклянут все разработчики, которые будут потом работать в вашим кодом. 
		
		
		
		
		
		
			
		
		
		
		
	За то, что вы используете нештатный механизм для решения штатной задачи. Этот топик очень напоминает мультик про Львенка и Черепаху. http://hedgehoginmist.narod.ru/turtle.html Цитата: 
	
		
			Они недовольно посмотрели друг на друга и вместе закончили: 
- И на солнышко гляжу! - И всё-таки надо петь лежу! - сказала Черепаха. - Это же я придумала! - А как же я буду петь лежу, если я сижу? - спросил Львёнок. - А ты ляг, и тогда всё будет по правде. Ты будешь лежать и петь: "Только я всё лежу!" - А я не люблю лежать, - сказал Львёнок. - Я люблю бегать. Ну, в крайнем случае - сидеть! - Но ты же лежал, когда подкрался ко мне! - Я лежал, только чтобы подслушать песню, - сказал Львёнок. - Я лежу только в особенных случаях. - Ну, а как ты спишь? Сидя, что ли? - спросила Черепаха. - Нет, сплю я лёжа. Но когда я сплю, я же не пою! - А ты представь себе, что ты спишь и поёшь!..  | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Mazzy, на 100% уверен, что ведущий программист скажет также и заставит переделывать, но уж если проблема возникла, то хочу ее решить...этим путем. Belugin, а каким образом задать SK для поля таблицы, или в свойстве ConfigurationKey поля можно задать  не только CK, но и SK?
		 
		
		
		
		
		
		
		
		
			Последний раз редактировалось Eldar9x; 25.01.2007 в 13:50.  | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 Axapta 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Зря. Впрочем, как скажите.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я ни на что не намекаю, но здесь прозвучала по этому поводу хорошая фраза 
		
		
		
		
		
		
			
		
		
		
		
	"Только самоубийца будет работать с такими, как ты" (что-то типа, а програмист вместо того, чтобы просто решить задачу, будет неделю придумывать и реализовывать извращенный алгоритм, который позволит сделать точно то же, что можно было сделать стандартным способом, который уже много раз испробован) Это конечно весело и прикольно, а сишнику вдвойне, но это не так, как следует делать на языке ERP системы  | 
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			дык....
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#18 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от kashperuk
			 
 
			(что-то типа, а програмист вместо того, чтобы просто решить задачу, будет неделю придумывать и реализовывать извращенный алгоритм, который позволит сделать точно то же, что можно было сделать стандартным способом, который уже много раз испробован) Это конечно весело и прикольно, а сишнику вдвойне, но это не так, как следует делать на языке ERP системы 
		
	Но в основном эти решения не используются......... 
				__________________ 
		
		
		
		
	Рабочий день сокращает жизнь на 8 часов ![]()  | 
| 
	
 | 
| 
			
			 | 
		#19 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Но, насколько мне известно, суть проблемы - сделать то, что нужно, и побыстрее  
		 | 
| 
	
 | 
| 
			
			 | 
		#20 | 
| 
			
			 Axapta 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
... Большое время подготовки, указанное нами, подразумевает подготовку грамотного разработчика. Мы вкладываем в это понятие не только умение кодировать - внутренняя среда и язык программирования Microsoft Axapta достаточно просты (а кодировать программисту со знанием Java и C++ несложно научиться за неделю). Грамотный разработчик должен знать существующиющие функциональные возможности и вести разработку, максимально использую уже имеющийся материал." Из Книги А. Еременко.  | 
| 
	
 | 
| 
	
	 | 
	
		
		
  |