Query-ик я проверил через инфолог всё там нормально.
а код полностью это
X++:
private static void updateEmplGroup(RPayGroupTable _rPayGroupTable,
Common _common)
{
EmplTable emplTable;
RHRMVirtualNetworkTable virtualNetworkTable;
QueryRun queryRun;
EmplId emplId;
int line;
;
//BP Deviation Documented
emplTable.setTmp();
//BP Deviation Documented
virtualNetworkTable.setTmp();
ttsbegin;
switch (_common.TableId)
{
case tablenum(EmplTable):
emplTable.data(_common);
emplTable.doInsert();
virtualNetworkTable.data(RHRMVirtualNetworkTable::findEmplId(emplTable.EmplId));
virtualNetworkTable.doInsert();
break;
case tablenum(RHRMVirtualNetworkTable):
virtualNetworkTable.data(_common);
virtualNetworkTable.doInsert();
emplTable.data(EmplTable::find(virtualNetworkTable.EmplId));
emplTable.doInsert();
break;
}
ttscommit;
emplId = emplTable.EmplId;
if (emplId && _rPayGroupTable.hasQuery())
{
queryRun = new QueryRun(new Query(_rPayGroupTable.Query));
queryRun.setRecord(virtualNetworkTable);
queryRun.setCursor(emplTable);
line = infolog.line();
try
{
// info(queryRun.query().DataSourceNo(1).toString());
if (queryRun.next())
{
if (! RPayGroupMember::memberByGroup(emplId,_rPayGroupTable.PayGroup))
{
RPayGroupMember::addMember(_rPayGroupTable.PayGroup,emplId);
}
}
else
{
if (RPayGroupMember::memberByGroup(emplId,_rPayGroupTable.PayGroup))
{
RPayGroupMember::deleteMember(_rPayGroupTable.PayGroup,emplId);
}
}
}
catch(Exception::Error)
{
infolog.clear(line);
warning(strfmt("@HRP2195", _rPayGroupTable.PayGroup));
}
}
}
этот класс я не модифицировал он стандартный. Клиент 4-ка. Единственное что я сделал это добавил в таблицу rPayGroupTable 3 поля, 2 даты и одно поле содержащий мой запрос, но он тут не отрабатывает даже, а отрабатывает в другом месте и причём хорошо...