Всем добрый день.
Ax 3.0 CIS SP3 на SQL Server 2000.
Возникла проблема. При формировании Excel-отчёта (класс - потомок RunBaseBatch) используется внешний запрос, критерии которого вводятся пользователем. Запрос строится по CustInvoiceJour (поля InvoiceAccount и InvoiceDate).
В отчёт информация о значениях фильтров выводится следующим образом:
X++:
ComExcelDocument_RU excelDocument;
...
excelDocument.insertValue("Period", qRun.query().dataSourceTable(tableNum(CustInvoiceJour)).findRange(fieldNum(CustInvoiceJour, InvoiceDate)).value());
excelDocument.insertValue("Client", qRun.query().dataSourceTable(tableNum(CustInvoiceJour)).findRange(fieldNum(CustInvoiceJour, InvoiceAccount)).value());
....
При выполнении отчёта у некоторых пользователей при построении отчёта критерии выводятся в ячейки нормально, а у некоторых появляется сообщение об ошибке: "QueryBuildRange Объект не инициализирован" и отчёт не выполняется.
Если в коде использовать проверку типа
X++:
if (qRun.query().dataSourceTable(tableNum(CustInvoiceJour)).findRange(fieldNum(CustInvoiceJour, InvoiceDate)))
excelDocument.insertValue("Period", qRun.query().dataSourceTable(tableNum(CustInvoiceJour)).findRange(fieldNum(CustInvoiceJour, InvoiceDate)).value());
то у всех отчёт формируется одинаково (то есть, данные собираются одни и те же, фильтры на запросе отрабатывают), но у тех, у кого раньше отчёт падал с сообщением об ошибке, теперь просто не появляются введённые значения фильтров запроса.
В чём может быть причина такого поведения?