| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Как аксапта выделяет ID объектов?
			 
			
			Как аксапта выделяет ID объектов? Где они хранятся? У нас проблема с созданием новых классов - создаю класс и он создается уже с именем , которое было присвоено кем-то, кто создавал класс до меня. Переиндексация и рестарт AOS не помогают. Проблема где-то глубже.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ага, а создал эту проблему тот, кто опускал в нижележащий слой код "С сохранением ID объектов". 
		
		
		
		
		
		
			Т.е. у Вас теперь на cus-слое (к примеру) id-шники из диапазона usr-слоя. Вы пытаетесь на usr-слое создать объект и у Вас ничего не выходит. Вам нужно выгрузить весь cus (нижележащий) слой, весь usr-слой, после чего удалить слои (как файлы) и снова загрузить cus "Без сохранения ID" и загрузить usr "как есть". Первая же синхронизация конечно убьет все Ваши поля и таблицы со всего приложения, но... если грамотно подойти - то можно добиться и "неубиения" данных. А вот если где хранятся ID таблиц/классов в данных (или в релейшнах) - то они обязательно слетят - там придется все ручками перелопатить 
				__________________ 
		
		
		
		
	Возможно сделать все. Вопрос времени  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо, но это не мой случай, тк я создала чистое приложение и положила в него наш var слой, но проблема осталась. База при этом та же. 
		
		
		
		
		
		
		
	Так все-таки где она хранит ID? В файлах приложения?  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Ищущий знания... 
		
			
	 | 
	
	
	
		
		
		
		 
			
			AOT \ System Documentation \ Tables \ UtilIdElements 
		
		
		
		
		
		
			не знаю уж корень вышей проблемы, но что то править там очень не советую. 
				__________________ 
		
		
		
		
	"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			То есть в файле слоя AOD хранятся заниси таблицы UtilIdElements, которые принадлежат этому слою, так?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Ищущий знания... 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
UtilIdElements - это системная таблица, а вот где храниться не знаю. Что бы посмотреть эту таблицу в аксапте надо проследовать по тому пути что я написал. AOT (репазитарий, там где собсно вы классы создаете)\ System Documentation (есть такой пункт в репазитарии, 3-ий снизу) \ Tables \ UtilIdElements 
				__________________ 
		
		
		
		
		
			"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем Последний раз редактировалось lev; 21.10.2009 в 18:02.  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо. я знаю, где таблица лежит и про AOD я написала "в файле слоя  AOD". Проблема в том, что аксапта преиодически не выделяет новых ID, поэтому , когда создаешь новый класс , она "создает" класс с готовым именем (именем того класса, что был создан дрйгим девелопером или даже мной самой). Какие есть возможные пути решения проблемы?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Боец 
		
			
	 | 
	
	
	
		
		
		
		 
			
			попробуйте  
		
		
		
		
		
		
		
	Меню: Tools\Development tools\Application objects\Refresh AOD  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			делала.не помогло.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			2 дня назад установлен был RU3, грешу на него. установила AOS с RU2 , отключила version control. вроде, заработало. Но как только сключаю version control, снова отваливается. я уже в отчаянии.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			AOS c RU3 + отключенный version control,  тож не работает.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А в каком слое Вы создаете новый класс? В usr? Тогда это Ваш случай. Когда делали var-слой - в него опустили объектами из usr-слоя. И теперь Вы пытаетесь создать объект, с ID в usr-слое, который присутствует в var-слое
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Возможно сделать все. Вопрос времени  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Можно написать джобик, который покажет конфликты с номерами, например, запросить по Вар слою номера старше, чем ему положено. 
		
		
		
		
		
		
		
	По описанию это именно та самая бага, что sukhanchik описал, тут он собаку съел, проверял  
		 | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Ищущий знания... 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
 
		
				__________________ 
		
		
		
		
	"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем  | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Объект создаю на var. Ниже Var разработок нет. Usr пустой. На cus только еще есть объекты.Просмотрела ID-шники  в UtilIdElements. Корректны. В моем случае у нового класса ID выделяется с номером 3xxxx, что нормально для Var. Но если создать 2 класса , то второму присвоится ID первого и сразу имя подставится первого класса тоже. То есть оба класса я создаю и на одном и том же( var слое) и новый создается с ID предыдущего. 
		
		
		
		
		
		
		
		
			Еще тут присоздании нового класса, AX почему-то думает. что он уже в Version Control. То есть при попытке сохранения абсолютно нового класса с абсолютно новым рандомным(для гарантии, что такого объекта еще не создавалось) именем(не всегда, как-то через раз выдет): "Unable to rename Class [classname]. The application object is checked out. Select Undo checkout to discard your changes or change the name back." Но при этом показывает класс как будто он сохранен. Короче, мозги у нее совсем поехали(( или уже у меня. Последний раз редактировалось kitty; 22.10.2009 в 10:17.  | 
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Начнем с того, что вы не указали версию AX. 
		
		
		
		
		
		
		
	Цитата: 
	
Цитата: 
	
		
			отключила version control. вроде, заработало
		
	 
 | 
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Во.. уже более детальное описание последовательности действий. 
		
		
		
		
		
		
			Проверьте, пожалуйста следующее (по табл. UtilIdElements): 1. Есть ли объекты с кодом 3xxxx на слое cus 2. Есть ли объекты с кодом 4хххх на слое var. В общем-то интересно проверить гипотезу о наличии объекта с Id, следующим по порядку после уже созданного объекта. Т.е., к примеру - Вы создали класс с номером 30123. Но класс с номером 30124 уже есть в системе (его закачивали с сохранением ID). Система не может создать такой объект и "сбрасывается" на предыдущий номер. И вообще - проверьте наличие классов с ID 3хххх, большим чем Ваш новосозданный класс (неважно на каком слое) UPD: Хм.. а про VersionControl я не подумал. В любом случае - проверьте и мою гипотезу тоже. 
				__________________ 
		
		
		
		
	Возможно сделать все. Вопрос времени  | 
| 
	
 | 
| 
			
			 | 
		#18 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Не зная какой у вас Вершин Контрол используется, я бы предложил пересоздать репозиторий. Подозреваю, у вас там хранятся объекты с "предыдущего" ВАР слоя, поэтому и ругается.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#19 | 
| 
			
			 Banned 
		
			
	 | 
	
	
	
		
		
		
		 
			
			UtilElements - это не таблица, а табличное представление AOD-файлов. Там ID и хранятся. Менять их простым редактированием не получится.
		 
		
		
		
		
		
		
		
		
			Последний раз редактировалось EVGL; 22.10.2009 в 12:37.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: lev (2). | |
| 
			
			 | 
		#20 | 
| 
			
			 Banned 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от kitty
			 
 
			Спасибо. я знаю, где таблица лежит и про AOD я написала "в файле слоя  AOD". Проблема в том, что аксапта преиодически не выделяет новых ID, поэтому , когда создаешь новый класс , она "создает" класс с готовым именем (именем того класса, что был создан дрйгим девелопером или даже мной самой). Какие есть возможные пути решения проблемы? 
		
	 | 
| 
	
 | 
| Теги | 
| ax3.0, ax4.0, нумерация, объект приложения, utilelements | 
| 
	
	 | 
	
		
		
  |