Можно так сделать. Хоть какое-то "удобство".
новый метод \Classes\Global\queryValueEnum
X++:
static str queryValueEnum(int _value, Name _dsName, FieldName _fieldName)
{
return strfmt("(%1.%2 == %3)", _dsName, _fieldName, _value);
}
X++:
static void testQueryPack(Args _args)
{
Query q1, q2;
QueryBuildDataSource qbds1, qbds2;
container con;
;
q1 = new Query();
qbds1 = q1.addDataSource(tablenum(InventTrans));
qbds1.addRange(fieldnum(InventTrans, StatusIssue)).value(queryValueEnum(StatusIssue::None, qbds1.name(), "StatusIssue"));
qbds1.addRange(fieldnum(InventTrans, StatusIssue)).value(queryValueEnum(StatusIssue::Sold, qbds1.name(), "StatusIssue"));
qbds1.addRange(fieldnum(InventTrans, StatusReceipt)).value(queryValueEnum(StatusReceipt::None, qbds1.name(), "StatusReceipt"));
qbds1.addRange(fieldnum(InventTrans, StatusReceipt)).value(queryValueEnum(StatusReceipt::Purchased, qbds1.name(), "StatusReceipt"));
info(qbds1.toString());
con = q1.pack();
q2 = new Query(con);
qbds2 = q2.dataSourceTable(tablenum(InventTrans));
info(qbds2.toString());
}