Показать сообщение отдельно
Старый 25.01.2011, 22:07   #1  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,875 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
это одна из идей, которую я хочу пропихнуть в АХ 2012.
**** выделено отсюда Используете ли вы @SYS метки при создании своих партнерских расширений? ****

Цитата:
Сообщение от kashperuk Посмотреть сообщение
Да, это одна из идей, которую я хочу пропихнуть в АХ 2012.
Посмотрим, или получится.
Идея хорошая.

Иван, было бы неплохо пропихнуть еще парочку :
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).