| 
			
			 | 
		#1 | 
| 
			
			 Ехидна 
		
			
	 | 
	
	
	
		
		
			
			
			Перебор всех таблиц, имеющих поле определенного типа
			 
			
			Буду весьма благодарен за советы, а также за ссылки на советы на этом форуме или любом другом ресурсе, о том как решить следующую задачу: 
		
		
		
		
		
		
			Нужно организовать перебор всех таблиц в АОТ, имеющих поле определенного расширенного типа. Для таблиц с таким полем, нужно перебирать все записи, имеющие определенное значение, и изменять это значение на другое. Аксапта 3.0 SP2, если это имеет значение. Еще раз заранее спасибо за советы. 
				__________________ 
		
		
		
		
	Strictly IMHO and nothing personal. Сугубо мое персональное мнение, безотносительно к личности оппонента.  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Что касается поиска - несколько способов было здесь 
		
		
		
		
		
		
		
	Список полей таблиц на базе конкретного EDT изменить можно например так: PHP код: 
	
			
	 
		 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Ехидна 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Vadik, спасибо большое!!!!
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Strictly IMHO and nothing personal. Сугубо мое персональное мнение, безотносительно к личности оппонента.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Re: Перебор всех таблиц, имеющих поле определенного типа
			 Цитата: 
	
		
			Изначально опубликовано AKIS-Falcon  
Нужно организовать перебор всех таблиц в АОТ, имеющих поле определенного расширенного типа. http://axapta.mazzy.ru/hints/xref/#040 Стоит встать в АОТ на EDT и спросить чем этот EDT используется. Отфильтровать записи, которые содержат \Data Dictionary\Tables\  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Ехидна 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Вот мой вариант того, что в результате получилось - фактически скрестил два Вадиковских куска кода, спасибо ему кстати еще раз 
		
		
		
		
		
		
			PHP код: 
	
			
	1. Как видно, тип у меня текстовый, так что никаких доппроверок не делаю 2. Не стал заморачиваться с длинным наследованием типа "внук-правнук" и пр. Ограничился только прямым 3. Немного поменял сам код, изменяющий значения полей - update record_setting почему-то не пошло... Вот. 
				__________________ 
		
		
		
		
	Strictly IMHO and nothing personal. Сугубо мое персональное мнение, безотносительно к личности оппонента.  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Ехидна 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Добавлю, что такие массовые обновления вообще-то надо вести очень осторожно. К примеру, может оказаться, что новое значение делает запись в таблице неуникальной по первичному ключу -> она не может быть сохранена -> выполнение всей процедуры прерывается. Т.е. неплохо бы обрабатывать такие ситуации по try.. catch. Насколько я понимаю, могут также быть затруднения и похуже...
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Strictly IMHO and nothing personal. Сугубо мое персональное мнение, безотносительно к личности оппонента.  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			На всякий случай напомню о функции RemanePrimaryKey. 
		
		
		
		
		
		
		
	С Уважением, Георгий.  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Ехидна 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо за напоминание  
		
		
		
		
		
		
			![]() Было дело, пользовался ею - когда план счетов меняли. 
				__________________ 
		
		
		
		
	Strictly IMHO and nothing personal. Сугубо мое персональное мнение, безотносительно к личности оппонента.  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Изначально опубликовано George Nordic  
На всякий случай напомню о функции RemanePrimaryKey. я сделал немного по другому: на форме Dimensions метод источника Dimensions PHP код: 
	
			
	PHP код: 
	
			
	wb  | 
| 
	
 |