Скорее всего хотят, чтобы указанная дата(_date) проверялась в периоде StartDate..EndDate если эти даты явно указаны в таблице.
Т.е.
1) если указана дата StartDate но неуказана EndDate, то бери если _date >= StartDate,
2) если не указана StartDate но указана EndDate, то бери если _date <= Enddate,
3) если указана StartDate и указана EndDate, то бери если _date >= StartDate и при этом _date <= EndDate,
4) если не указана StartDate и не указана EndDate, то бери в любом случае.
Если я правильно понял, то будет работать такой вариант Query :
X++:
qbdsTable.addRange(fieldNum(Table, StartDate)).value( QueryRange( _date,datenull() ) );
qbdsTable.addRange(fieldNum(Table, StartDate)).value( QueryValue( datenull() ) );
qbdsTable.addRange(fieldNum(Table, EndDate)).value( QueryRange( datenull(),_date ) );
qbdsTable.addRange(fieldNum(Table, EndDate)).value( QueryValue( datenull() ) );
Здесь надо заметить что добавление Range на одно и тоже поле, формирует кострукцию ||.