Вот такой код в AX2012 выводит в инфолог две строки. В самом конце первой строки виден пользовательский фильтр WHERE ((SalesTable(SalesTable).SalesId = N'SO00011745' OR SalesId = N'SO00011746')).
1) SELECT FIRSTFAST * FROM SalesTable(SalesTable) ORDER BY SalesTable.SalesId ASC WHERE ((NOT (ReturnStatus = 4) AND NOT (ReturnStatus = 1))) OUTER JOIN Person, Person FROM HcmWorker(Ref_HcmWorker_WorkerSalesTaker_FK) ON SalesTable.WorkerSalesTaker = HcmWorker.RecId OUTER JOIN Name, RecId FROM DirPerson(Ref_DirPerson_WorkerSalesTaker_FK_DirPerson_FK) ON HcmWorker.Person = DirPerson.RecId WHERE ((SalesTable(SalesTable).SalesId = N'SO00011745' OR SalesId = N'SO00011746'))
Во второй строке выводятся range, пользовательские фильтры в range не попадают.
2) !Отменено, !Создано
X++:
void new(FormRun _callerFormRun,)
{
Query localQuery;
FormDatasource formDatasource;
int i;
;
formDatasource = _callerFormRun.dataSource(1);
localQuery = formDatasource.queryRun().Query();
info(localQuery.datasourceNo(1).toString());
for (i = 1; i <= localQuery.dataSourceNo(1).rangeCount(); i++)
{
info(localQuery.dataSourceNo(1).range(i).value());
}
}