11.03.2008, 16:29 | #1 |
Участник
|
Ошибка времени выполнения
Недавно начал заниматься программированием в Axapta.
Используется Axapta 3.0 build #1951.7609/514-859 SP6/OP023-659 Столкулся со следующей проблемой. В классе PurchFormLetter добавил переменную в classDeclaration^ X++: abstract class PurchFormLetter extends FormLetter { ... mPurchFormLetterSetup formLetterSetup; ... } X++: static mPurchFormLetterSetup findPurchTable(PurchTable _purchTable, DocumentStatus _documentStatus) { ... formLetterSetup = mPurchFormLetterSetup::find(_purchTable.PurchaseType, _documentStatus, TableGroupAll::All, '', userRelationType, userRelation); ... return formLetterSetup; } X++: static mPurchFormLetterSetup find(PurchaseType _purchType, DocumentStatus _documentStatus, TableGroupAll _vendRelationType = TableGroupAll::All, VendAccount _vendRelation = '', TableGroupAll _userRelationType = TableGroupAll::Table, UserGroupId _userRelation = curUserId(), boolean _forUpdate = false) { mPurchFormLetterSetup formLetterSetup; ; formLetterSetup.selectForUpdate(_forUpdate); select firstonly formLetterSetup where formLetterSetup.PurchType == _purchType && formLetterSetup.DocumentStatus == _documentStatus && formLetterSetup.VendRelationType == _vendRelationType && formLetterSetup.VendRelation == _vendRelation && formLetterSetup.UserRelationType == _userRelationType && formLetterSetup.UserRelation == _userRelation; return formLetterSetup; } X++: protected void initParmPurchTable(PurchTable _purchTable) { ... formLetterSetup = mPurchFormLetterSetup::findPurchTable(_purchTable, this.documentStatus()); ... } Переменная formLetterSetup объявлена в classDeclaration тоже, как mPurchFormLetterSetup. Все компилируется без ошибок. Однако во время выполнения, в отладчике вылетает ошибка "Ошибка времени выполнения: неправильные типы агрументов в операции присвоения значения переменной" Помогите, пожалуйста, совсем сбит с толку. |
|
11.03.2008, 18:42 | #2 |
MCTS
|
Пробовали делать инкрементную компиляцию класса PurchFormLetter?
|
|
|
За это сообщение автора поблагодарили: Stas[SNRC] (1). |
11.03.2008, 19:01 | #3 |
Участник
|
Ну приведенный код у меня заработал без проблем . Можно ли скинуть проект или хотя бы скриншот ошибки?
|
|
12.03.2008, 11:57 | #4 |
Участник
|
Сейчас попробовал. Инкрементная компиляция прошла без ошибок
Я уже начинаю думать, что все из-за того, что некоторые классы я получил дублированием аналогичных и исправлением кода. Может быть дело в этом? |
|
12.03.2008, 12:05 | #5 |
Участник
|
Если инкрементнаая прошла без ошибок, то и обычная без ошибок будет
Дело не в дублировании, а в том, как компилируется и сохраняется откомпилированный код. Георгий (Nordic) выкладывал когда-то прикольное описание этого, поищите, вдруг вам повезет больше чем мне. З.Ы. Новый поисковый движок творит чудеса Зависимость порядка объявления переменных в classDeclaration |
|
|
За это сообщение автора поблагодарили: aidsua (1), Stas[SNRC] (1). |
12.03.2008, 12:14 | #6 |
Участник
|
Цитата:
В Ах-е есть такой глюк, что при создании объектов дублированием. В какой-то момент из проекта могут эти объекты исчезать. При этом в АОТ они есть. Как это происходит так и не понял. Но наблюдал часто. Может какой-нибудь объект вывалился, а вы его компильнуть не успели. |
|
12.03.2008, 12:21 | #7 |
Участник
|
Цитата:
Сообщение от kashperuk
Если инкрементнаая прошла без ошибок, то и обычная без ошибок будет
Зависимость порядка объявления переменных в classDeclaration kashperuk. спасибо за ссылку на разжеванное объяснение! |
|