![]() |
#9 |
Участник
|
Я тоже не нашел решения. Похоже, очередной глюк парсинга расширенного Range.
Чтобы увидеть проблему в dax2012 сделал джоб по таблице оборотно-сальдовой ведомости. Там есть поля типа массив В dax2012 есть метод query.getSQLStatement(), который позволяет увидеть запрос SQL. Но эту функцию надо выполнять на стороне сервера. X++: static void Job_Test(Args _args) { MenuFunction mf; Query query; QueryBuildDataSource qbds; QueryBuildRange qbRange; ; // перезапускаем job на стороне сервера if ( ! isRunningOnServer()) { mf = classFactory::makeObjectOnServer(classNum(MenuFunction)); mf.objectType(MenuItemObjectType::Job); mf.runOn(ClassRunMode::Server); mf.object(funcName()); mf.run(); return; } info('Обычный фильтр по полю-массиву'); query = new Query(); qbds = query.addDataSource(tableNum(RLedgerTurnoverSheetHeader), 'T1'); qbds.addSelectionField(fieldNum(RLedgerTurnoverSheetHeader, RecId)); qbRange = qbds.addRange(fieldNum(RLedgerTurnoverSheetHeader, GroupParam), 2); qbRange.value('XXXXXX'); info(qbds.toString()); info(query.getSQLStatement()); info(''); info('Расширенный фильтр по полю-массиву'); query = new Query(); qbds = query.addDataSource(tableNum(RLedgerTurnoverSheetHeader), 'T1'); qbds.addSelectionField(fieldNum(RLedgerTurnoverSheetHeader, RecId)); qbRange = qbds.addRange(fieldNum(RLedgerTurnoverSheetHeader, RecId)); qbRange.value('(T1.GroupParam[2] == "XXXXXX")'); info(qbds.toString()); info(query.getSQLStatement()); } Т.е. в dax2012 нельзя использовать в расширенных фильтрах поля типа массив ![]()
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: Logger (3). |
Теги |
bug, extended query, extended query syntax |
|
|