25.09.2007, 18:16
|
#1
|
Участник
Регистрация: 28.11.2005
Адрес: Москва
|
Пропадает значение Range при экспорте проекта
Есть такой метод SysQuery::valueEmptyString(), который возвращает, так сказать, обозначение для пустого значения поля - две двойные кавычки. Если делать запрос не программно через всякие QueryBuildDataSource/QueryBuildRange, а "визуально" в AOT, то там нужно для поиска записей с пустым полем указать эти две двойные кавычки в значении Range. Все замечательно, запрос проверен, код, его использующий, отлажен, переносим проект на тестовое (или рабочее) приложение через экспорт-импорт. И тут-то нас ожидает подстава со стороны ядра Аксапты: при выгрузке запросов из AOT'а значение таких Range будет утеряно! Т.е. буквально вместов файл проекта будет выгруженопосле чего запрос, естественно, будет давать «немного» иные результаты. К счастью, коллегой был найден workaround, позволяющий не откатываться к программному созданию запросов: можно в качестве значения Range указать не просто "", а ((имя_поля="")), где имя_поля соответствует полю, на котором задается Range. И хотя гибкость использования запросов AOT от этого снижается - это все же лучше, чем вообще покорежить запрос при переносе проекта...
Проверено на AX 3 SP3, AX3 KR3.
|
|