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