Создайте нужный вам рейнж два раза. Один раз его заблокируйте, а второй - нет. Значения изменяйте в обоих
PS
Еще - надо перекрыть метод dialogUpdateQuery() и добавлять в нем второй датасорс - для восстановления после пользовательского фильтра (на примере InventTable и itemGroupId)
X++:
public void dialogUpdateQuery(Dialog dialog)
{
Query q;
QueryBuildDatasource qbd;
QueryBuildRange qbr;
int line;
;
q = queryRun.query();
qbd = q.dataSourceTable(tablenum(InventTable));
try
{
line = infolog.line();
qbr = qbd.rangeField(fieldnum(InventTable, itemGroupId), 2);
}
catch
{
infolog.cut(line, infolog.line());
qbr = qbd.addRange(fieldnum(InventTable, ItemGroupId));
qbr.value(qbd.rangeField(fieldnum(InventTable, itemGroupId)).value());
}
super(dialog);
}