|
![]() |
#1 |
Участник
|
По идее-то да. Но вот в таком варианте наблюдаю вываливание на QueryRun.next() в тарссировку стека с ошибкой "неверный параметр".
Цитата:
Хотя, вы бы привели запрос полностью, что бы было видно, как таблицы между собой соединяются
Запрос должен находить номенклатуры, относящиеся к выбранным Table2 (на Table2 накладывается пользовательский фильтр), у которых текущие остатки больше 0 и по которым есть приходные проводки с датой раньше, чем текущая минус кол-во дней, указанное в соответствующей Table2. X++: query = new Query(); qbdsTable2 = query.addDataSource(tableNum(Table2)); qbdsInventTable = qbdsTable2.addDataSource(tableNum(InventTable)); qbdsInventTable.addLink(fieldNum(Table2, Id), fieldNum(InventTable, Table2Id)); qbdsInventTable.addGroupByField(fieldNum(InventTable, ItemId)); qbdsInventSum = qbdsInventTable.addDataSource(tableNum(InventSum)); qbdsInventSum.relations(true); qbdsInventSum.addRange(fieldNum(InventSum, PostedQty)).value('(PostedQty>0)'); qbdsInventSum.addSelectionField(fieldNum(InventSum, PostedQty), SelectionField::Sum); qbdsInventTrans = qbdsInventSum.addDataSource(tableNum(InventTrans)); qbdsInventTrans.relations(true); qbdsInventTrans.addRange(fieldNum(InventTrans, StatusReceipt)).value(queryValue(StatusReceipt::Purchased)); qbdsInventTrans.addRange(fieldNum(InventTrans, DateFinancial)).value(strfmt('(((%1 - %2) > %3.%4))', date2StrXpp(systemDateGet()), fieldStr(InventTrans, DateFinancial), query.dataSourceTable(tableNum(Table2)).name(), fieldStr(Table2, Days))); qbdsInventTrans.joinMode(JoinMode::ExistsJoin); |
|
Теги |
querybuildrange, дата, расширенный фильтр |
|
|