Цитата:
Сообщение от
TasmanianDevil
S.Kuskov, неправда Ваша - всякие count<Всякое>() в нем работают именно с объектом типа QueryRun и именно его клонируют через контейнер, производя вычисления.
Действительно так. Но только это не помогает избежать того о чем я писал. Связь со временной таблицей теряется все равно:
Вот небольшой пример:
X++:
static void JobTEST_QueryRunPack(Args _args)
{
Query query;
QueryRun queryRun1, queryRun2;
TmpABC TmpABC1;
;
query = new Query();
query.addDataSource(tableNum(TmpABC));
TmpABC1.clear();
TmpABC1.Amount = 123.45;
TmpABC1.doInsert();
queryRun1 = new QueryRun(query);
queryRun1.setCursor(TmpABC1);
info(strfmt("SysQuery::countTotal(queryRun1): %1", SysQuery::countTotal(queryRun1))); // 0
info("");
queryRun2 = new QueryRun(queryRun1.pack()); // "клонируем" QueryRun
info("queryRun2:");
info("{");
while (queryRun2.next()) // {}
{
TmpABC1 = queryRun2.get(tableNum(TmpABC));
info(strfmt("%1", TmpABC1.Amount));
}
info("}");
info("");
info("queryRun1:");
info("{");
while (queryRun1.next()) // {123,45}
{
TmpABC1 = queryRun1.get(tableNum(TmpABC));
info(strfmt("%1", TmpABC1.Amount));
}
info("}");
}