Цитата:
Сообщение от
AndyD
255 - это __ILLEGAL_VALUE__
Это уже следствие
Надо разбираться, почему queryValue(sysDimension:: Department) возвращает пусто (а пусто ли?).
Смотрите под отладчиком, что в этом методе происходит.
Проверьте метку или значение, которое прописано в Label SysDimension:: Department. Можно, на всякий случай, пересохранить это значение
Немного не так.
Метод выглядит executeQuery вот так:
public void executeQuery()
{
;
queryDimensionTypeAllRange.value(queryValue(sysDimension));
super();
}
инициализация sysDimension происходит в run и в getLookupType при условии что, element.args().dataset() будет равен Dimensions, LedgerControlDimension, TmpSysQuery
X++:
public void run()
{
boolean filterLookup;
;
callerControl = SysTableLookup::getCallerStringControl(element.args());
callerFieldId = callerControl.dataField();
sysDimension = Dimensions::arrayIdx2Code(fieldExt2Idx(callerFieldId));
callerFieldId = fieldExt2Id(callerFieldId);
if (!callerFieldId)
{
sysDimension = Dimensions::arrayIdx2Code(callerControl.arrayIndex());
}
.....
В нашем случае мы запускаем расширенный фильтр на любой форме, где есть фин. аналитика по клавише CTRL + F3:
И ни одно из условий не выполняется. видимо значение по умолчания для enum, если он не инициализирован 255, я так это понимаю.
Но как то чудно это, функциональность эта на gls слое, неужели у всех так работает?
Значение присваивается только в run().
info(enum2str(sysDimension)); показывает "Пусто"