25.01.2011, 22:07 | #1 |
Участник
|
это одна из идей, которую я хочу пропихнуть в АХ 2012.
**** выделено отсюда Используете ли вы @SYS метки при создании своих партнерских расширений? ****
Цитата:
Иван, было бы неплохо пропихнуть еще парочку : 1. В отладчике выходить из метода не по последней строчке, а по закрывающей скобке "}" - очень этого не хватает. Сейчас приходится иногда вставлять в конце метода вызов метода пустышки - неудобно. Тем более что в других продуктах MS, именно так и работает. (Например, когда отлаживаешь в Excel макрос на VBA) 2. Облегчить каким-нибудь способом поиск мест в коде, в которых меняются свойства контрола или датасорса или поля датасорса. Поясню подробнее. Иногда разбираешь чужие модифы, ошибки и происходит вызов ядреного метода, например xRecord.insert() или xRecord_ds.active() - чтобы найти кто и откуда гадит, достаточно поставить точку останова внутри метода, воткнуть туда, например, простенький if с проверкой на некорректные значения и точкой останова и таким образом быстро найти проблему. Если метод не перекрыт, то перекрыть его и добавить свой код с проверками. А вот со свойствами датасорсов и контролов такой номер не прокатит, так как их перекрывать нельзя. А иногда очень нужно. Например выяснить, из-за чего же все-таки дизейблится поле и т.п. Возможно, решать надо совсем по другому, не так как я описываю. Например, чтобы отладчик мог задавать условные точки останова, по значению переменной или по значению свойства объекта. - Но в любом случае это очень нужная вещь - могла бы сэкономить кучу времени. Проще всего по-моему дать возможность обрабатывать любое свойство как метод, перекрывая его в код X++. Или сделать что-то по аналогии с использованием \System Documentation\Classes\FormRun\controlMethodOverload т.е. сделать настройку в ядре, которая вызывала бы определенный программистом метод при изменении заданного свойства объекта. Т.е. нужно мне поймать кто дизейблит контрол Object, я вызываю FromRun.XXXcontrolMethodOverload("MyMethodName4Invoke", Object, "Object_PropertyName") и при изменении свойства PropertyName ядро дергает мой метод MyMethodName4Invoke() передавая в него Object, а я ставлю в своем методе MyMethodName4Invoke() точку останова и вижу стек вызовов и быстро нахожу проблему. Последний раз редактировалось Logger; 25.01.2011 в 22:19. |
|
|
За это сообщение автора поблагодарили: Pustik (1), S.Kuskov (3). |
Теги |
button, clicked, stack trace, stack trace clicked, кнопка, стек вызовов |
|
|