Без создания View можно.
Программно задавать ограничения можно на уровне Query.
Пример с SUM отладить не удалось (за пару минут), но Count точно работает.
X++:
static void HavingJob(Args _args)
{
Query query;
QueryBuildDataSource datasource;
QueryHavingFilter havingFilter;
QueryRun queryRun;
LedgerJournalTable LedgerJournalTable;
query = new Query();
datasource = query.addDataSource(tableNum(LedgerJournalTable));
datasource.addSelectionField(fieldNum(LedgerJournalTable, RecId), SelectionField::Count);
datasource.addGroupByField(fieldNum(LedgerJournalTable, JournalType));
havingFilter = query.addHavingFilter(datasource, fieldStr(LedgerJournalTable, JournalType), AggregateFunction::Count);
havingFilter.value('=1');
queryRun = new QueryRun(query);
while (queryRun.next())
{
LedgerJournalTable = queryRun.getNo(1);
info(strFmt('Group %1: %2', LedgerJournalTable.JournalType, LedgerJournalTable.RecId));
}
}