| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			ax2009 игнорирует изменения кода
			 
			
			Всем здравствуйте! 
		
		
		
		
		
		
		
	Возникла следующая проблема: есть Map в DataDictionary, для таблицы Table настроен Mapping. В последствии в Map добавили новое поле, обновили Mapping для таблицы, но при попытке в коде обратиться к новому полю через Map, вываливается трассировка стека с ошибкой "Поле с кодом '0' не найдено в таблице Table". Чтобы проверить, удалил полностью Mapping для данной таблице, но ситуация не изменилась, т.е.: X++: Table table; Map map; select table; Map = table; info(Map.Oldfield); //проходит (хотя mapping отсутствует) info(Map.NewField); //здесь вываливает трассировку стека Есть еще одна проблема, возможна причина у них одна: создали класс, потом поменяли название, после рестарта АОС, класс имеет старое имя, делаем восстановить, компилировать и вуаля, класс уже имеет новое имя. Если кто сталкивался с проблемой, подскажите пожалуйста куда смотреть. Версия Ax2009 SP1 RU5, kernel=application = 5.0.1500.2985  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Со слоями ничего не напутали? Версионность включена?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Со слоями вроде все нормально, все происходит в одном слое. Версионность не включена.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от patron
			 
 
			Всем здравствуйте! 
		
	Возникла следующая проблема: есть Map в DataDictionary, для таблицы Table настроен Mapping. В последствии в Map добавили новое поле, обновили Mapping для таблицы, но при попытке в коде обратиться к новому полю через Map, вываливается трассировка стека с ошибкой "Поле с кодом '0' не найдено в таблице Table". Чтобы проверить, удалил полностью Mapping для данной таблице, но ситуация не изменилась, т.е.:   прикольный глюк, у меня такой был.Как то я такое тоже делал http://axforum.info/forums/blog.php?b=225 с Maps\AddressMap и Maps\AddressMap_RU. Надо в моем случае добавить в метод\Classes\FormRunListener_Address_RU\addressInfo код X++: case formstr(NewMyForm) : return [[#AddressGroup, tablenum(AddressMap)]]; Может натолкнет на мысль. Там к мапам надо еще классы проверить. При открытии формы вызывается класс, который накидывает доп. поля или отключает лишние. (В твоем случае класс ищи сам) Стек трассировки проверь. 
				__________________ 
		
		
		
		
		
			This posting is provided "AS IS" with no warranties, and confers no rights. Последний раз редактировалось Poleax; 03.03.2011 в 18:07.  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Map как раз-таки AddressMap_RU как и в Вашем случае Poleax. Но классы все настроены, проблема именно при обращении к полю через Map, на форме поля отображаются верно. Проблемы происходит при смене, например, города, при котором очищаются нижестоящие поля через метод modifiedTown на Map и вот как раз в этом методе происходит обращения к новому полю для его очистки и трассировка стека.  
		
		
		
		
		
		
		
		
			X++: public server void modifiedTown() { ... this.NewField = ''; //здесь трассировка стека ... } Последний раз редактировалось patron; 04.03.2011 в 09:45.  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Однако бывает, что Аксапта "не ловит" изменения, которые произошли в косвенных объектах. типичные случаи: класс -> таблица -> мап форма -> таблица -> поле -> тип в этом случае надо (упорядочено по возрастанию надежности и возрастанию геморройности для программиста) = восстановить объект (правай кнопка мыши восстановить) = обновить объекты AOD (сервис \ средства разработки \ Объекты приложения \ Обновить AOD) = или выйти и зайти в аксапту = удалить индексные файлы приложения = выполнить глобальную перекомпиляцию.  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо за совет. Но, к сожалению, все эти операции были проделаны и к результату не привели. Помог следующий способ: экспорт объекта, затем удаление его полностью из слоя, а затем обратный экспорт. Всем спасибо за советы!
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: mazzy (2). | |
| 
	
	 | 
	
| Опции темы | Поиск в этой теме | 
| Опции просмотра | |
		
  |