Всем доброго дня.
У меня подобная проблема.
Есть справочник учета холодильников, в нем указывается "дата установки" и "дата выбытия". Если холодильник еще не выбил, то "дата выбытия" пуская, т.е dateNull(). Пытаюсь в query наложить условие периода дат но безрезультатно.
X++:
queryLocal = new Query();
qbds1 = queryLocal.addDataSource(tableNum(SalesTable));
qbds1.addGroupByField(fieldNum(SalesTable, ShipmentPointCode));
qbds2 = qbds1.addDataSource(tableNum(RegistrationRefrigerationTable));
qbds2.joinMode(JoinMode::InnerJoin);
qbds2.fetchMode(QueryFetchMode::One2One);
qbds2.relations(false);
qbds2.addLink(fieldNum(SalesTable, ShipmentPointCode), fieldNum(RegistrationRefrigerationTable, ShipmentPointCode));
queryRunLocal = new QueryRun(queryLocal);
....
queryLocal = queryRunLocal.query();
qbds1 = queryLocal.dataSourceTable(tableNum(SalesTable));
qbds1.clearRange(fieldNum(SalesTable, ShippingDateRequested));
qbds1.addRange(fieldNum(SalesTable, ShippingDateRequested)).value(strfmt("%1 .. %2", startDate, endDate));
qbds2 = queryLocal.dataSourceTable(tableNum(RegistrationRefrigerationTable));
qbds2.clearRanges();
qbds2.addRange(fieldNum(RegistrationRefrigerationTable, DateInsert)).value(strfmt("..%1", endDate)); /* работает, выводит 2 строки*/
/*добавляю фильтр по дате выбытия, ожидаю в выводе 1 строку, а получаю много много*/
rangeDate = strfmt('((DateRemove>="%1") OR (DateRemove=="%2"))', startDate, dateNull()); // с этими строками
qbds2.addRange(fieldNum(RegistrationRefrigerationTable, DateRemove)).value(rangeDate); // выводит чушь
queryRunLocal = new QueryRun(queryLocal);
в инфологе вот такая вот ошибка "Ошибка расширенного диапазона запроса: Ожидается правая круглая скобка рядом с 32."
Дайте совет как правильно прописать условие.