S.Kuskov, большое вам спасибо. Ваш код очень помог. Кроме того, нашла на форуме сообщение, в котором обсуждалась проблема с кнопкой Удалить фильтр. Так же как и в том случае мои фильтры воспринимались как программные, а нужно чтобы они воспринимались как пользовательские. Ниже приведу методы, после редактирования которых, все заработало. Методы формы:
X++:
public boolean unpack(container packedClass)
{
Integer version = conpeek(packedClass,1);
PackedQueryRun packedQuery;
switch (version)
{
case #CurrentVersion:
[version,packedQuery] = packedClass;
if (queryIsPackedOk(packedQuery))
{
query = new Query(packedQuery);
}
break;
default :
return false;
}
return true;
}
X++:
public void init()
{
;
xSysLastValue::getLast(this);
super();
element.selectMode(InventTable_ItemId);
}
X++:
public void run()
{
;
super();
inventTable_ds.research();
#sysTaskRecorderMacro
this.task(#sysTaskRecorderTaskFilterByGrid);
}
Метод источника данных:
X++:
public void executeQuery()
{
if(this.queryRun())
{
super();
}
else
{
super();
this.queryRun().query().dataSourceTable(tableNum(InventTable)).clearRanges();
this.queryRun().query(query);
}
}