11.06.2014, 17:30 | #1 |
Участник
|
Новый класс создается как копия существующего с другого слоя
Периодически возникает проблема при создании нового класса на слое USR. Создание стандартное - правой клавишей мыши на узле Classes \ Создать Class
Новый класс создается, но не пустой, а как копия существующего класса на другом слое, но с другим именем. В смысле, у нового класса создаются не копии методов на слое USR, а копии методов на слое оригинального класса. При этом прав на редактирование слоев отличных от USR - нет. Такое ощущение, что новый объект слоя USR ассоциируется с ранее созданным объектом другого слоя. В моем случае связка идет со слоем BUP Выкручиваюсь я из этой ситуации просто тупо создавая все новые и новые классы, пока очередной класс не будет создан как положено. Затем удаляю все "левые" объекты. Вот только что пришлось создать 10 классов пока наконец Axapta не дала создать то, что нужно. Есть какие-либо соображения почему такое может происходить? Ax2009 PS: Программное создание дает тот же эффект X++: #aot
TreeNode treeNode = TreeNode::findNode(#ClassesPath);
;
treeNode.AOTadd('MyNewClass'); PPS: У нас есть две копии Axapta: для разработки и для тестирования. Проблема возникает одновременно на обоих копиях. Похоже на то, что это как-то связано с ID объектов. Пока ID нового объекта не станет больше некоторой величины, нормального создания нового класса не получается.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
11.06.2014, 17:47 | #2 |
Участник
|
Установлена ли у вас VSS или какая другая система контроля версий?
Насколько я знаю, в АХ ничего хорошего они не принесли.
__________________
// no comments |
|
11.06.2014, 18:29 | #3 |
Участник
|
Есть система контроля версий от Columbus. Собственно, и классы-"образцы" берутся из их решения. Все с префиксами "CIT_"
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
11.06.2014, 18:49 | #4 |
----------------
|
ну значит они "CIT_"классы с неправильными идентификаторами (из области USR) вот вы с ними и пересекаетесь.
|
|
11.06.2014, 18:57 | #5 |
Участник
|
"CIT_" - классы созданы на слое BUP и имеют идентификаторы около 20000, а новые классы, создаваемые на слое USR имеют идентификаторы от 51000.
Например, при создании класса с идентификатором 51839 в качестве "образца" ему подсовывается класс с идентификатором 20934
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
11.06.2014, 19:25 | #6 |
Участник
|
Может, я не в тему... В своё время мы это решали так: брали максимальный ID класса данного слоя, принудительно проставляли его номер +1 в XPO файл с любым другим классом, импортировали файл с этим классом с IDs, далее все новые классы получали IDs выше данного минимального. И никаких пересечений не было.
P.S.VSS не использовался. Последний раз редактировалось Михаил Андреев; 11.06.2014 в 19:28. Причина: Добавил про VSS |
|
11.06.2014, 22:28 | #7 |
Сенбернар
|
Цитата:
В вашем вопросе эта деталь.. не упомянута )
__________________
Best Regards, Roman |
|
14.06.2014, 13:42 | #8 |
Участник
|
Все это проделал. На результат не повлияло. Глюк остался.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
14.06.2014, 21:18 | #9 |
Участник
|
Т.е. именно удаляли aoi-файл, чтобы он пересоздался с нуля? Может, все же на BUP-слое есть пересечения по ID, и глюк возникает из-за того, что класс с "неправильным" ID участвует в иерархии наследования?.. Проверьте на всякий случай
код поиска объектов стандартного приложения с идентификаторами из диапазона usr-слоя PS. Если не секрет, какого размера у вас файл usr-слоя? Для 2009-й это менее актуально, но на 3.0 я видел очень затейливые глюки, когда размер файла слоя вплотную приблизился к максимальному размеру: из-за этого новые объекты стали создваться будто бы на usp-слое, хотя текущим слоем разработки был usr. |
|
15.06.2014, 21:16 | #10 |
Участник
|
gl00mie
Гм... Ну, раз Вы все сообщения не читаете, то повторю то, что я уже писал, но другими словами и с дополнениями : 1. Пересечения id - нет. Новый объект создается, во-первых, со значением id которого ранее не существовало (проверил по таблице UtilIdElements),а, во-вторых, значение id "образца" на несколько тысяч отличается от значения id нового элемента. 2. "Переиндексацию" делал путем удаления файлов: *.ali, *.aoi, *.alt, *.ahi, *.khi, *.udb, *.add, *.adi 3. Глобальную перекомпиляцию делал 4. Размер файла axusr.aod = 152 444 928 байт
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... Последний раз редактировалось Владимир Максимов; 15.06.2014 в 21:24. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|