Показать сообщение отдельно
Старый 16.03.2011, 10:38   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Angry Ядро AX 2009 всегда пытается преобразовать числовые значения enum в метки в расширенном фильтре?
Начну немного издалека... Метки для значений enum'ов не всегда являются допустимыми с точки зрения использования в расширенных запросах - к примеру, в них могут содержаться круглые скобки, запятые, восклицательные знаки. Метод Global::enum2Value(), который вызывается из SysQuery::value(), "знает" об этом и в таких случаях возвращает не метку значения enum'а, а соотв. число.
Так вот, в работе формы расширенного фильтра запроса была замечена одна неприятная особенность: если в запросе есть такой "числовой" фильтр по полю типа enum, то при открытии формы фильтра его значение всегда преобразуется в метку, даже если она не является допустимым с т.з. использования в запросе, при этом еще и в инфологе вылезает "Ошибка расширенного диапазона запроса: Синтаксическая ошибка рядом с ...". Пользователей формы, где это проявляется, уже начинают порядком раздражать, объяснять им, что "левую" метку надо в фильтре перебивать обратно, скажем, на нолик, тоже как-то неудобно. Я сперва думал, может, это в приложении где делается, но найти такое место не смог, из чего сделал вывод, что самоуправством занимается ядро. Воспроизводится ли это еще у кого-нить? Может, все же это где-то в приложении делается, и можно такое преобразование подправить?

Ядро AX 2009 SP1 5.0.1500.3968, приложение AX 2009 SP1 EE RU5 5.0.1500.2985