|
![]() |
#1 |
Участник
|
Как правило, для обслуживающих (сервисных) функций Axapta класс инициализируется только для того, чтобы проверить наличие или отсутствие неких методов или свойств самого класса. Поэтому значение переменных внутри класса в этих случаях не требуется. Вот какие-нибудь "заглушки" там и сделайте на этот случай
Т.е. прямо в методе new() сделайте код обхода, чтобы класс все-таки был инициализирован. Пусть и с явно "кривыми" данными. А "кривизну" проверяйте уже в рабочих методах. Ну, или просто перенесите инициализацию тех объектов, которые создаются в методе new() в первый исполняемый метод класса, чтобы в new() ничего не было Если же в метод new() у класса передаются какие-то параметры, то можно опираться на тот факт, что в обслуживающих функциях эти параметры никогда не передаются при инициализации класса. Соответственно, делать обход по факту отсутствия переданных параметров PS: кто там настаивал, что перекрывать метод new() вообще и передавать в него параметры в частности - это хорошо? ![]() Цитата:
Причем this.get_DataSourceName() возвращает CustTable, все должно быть корректно.
но dataSource равен null. Подскажите почему он равен null ? В общем, в данном конкретном случае Вы "слишком глубоко копаете". Не надо дальше самого класса CustDocument_CustTable пытаться что-то подправить. Вам надо или обойти инициализацию в самом методе new(), если есть параметры, или перенести весь код из new() в другой метод
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
![]() |
#2 |
Участник
|
Цитата:
Сообщение от Владимир Максимов
![]() Т.е. прямо в методе new() сделайте код обхода, чтобы класс все-таки был инициализирован. Пусть и с явно "кривыми" данными. А "кривизну" проверяйте уже в рабочих методах. Ну, или просто перенесите инициализацию тех объектов, которые создаются в методе new() в первый исполняемый метод класса, чтобы в new() ничего не было
Если же в метод new() у класса передаются какие-то параметры, то можно опираться на тот факт, что в обслуживающих функциях эти параметры никогда не передаются при инициализации класса. Соответственно, делать обход по факту отсутствия переданных параметров X++: public void new() { super(#CustDocument_CustTable); } Где #define.CustDocument_CustTable('CustDocument.CustTable') Вообщем я правильно понял что лучше будет в таком случае просто убрать super ? Просто как быть если возникает предупреждение что в методе не вызывается родительский метод? |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|