Я сталкивался с этим раньше.Иногда приемлемым вариантом является жесткое кодирование условных значений в виде оператора ИЛИ, а не списка, разделенного запятыми:
((LedgerTrans.Posting == LedgerPostingType::PurchReceipt) || (LedgerTrans.Posting == LedgerPostingType::PurchConsump))
, который можно ввести в поле фильтра диапазона или установить в качестве значениядиапазон через код x ++:
ledgerPostingRange.value("((LedgerTrans.Posting == LedgerPostingType::PurchReceipt) ||
(LedgerTrans.Posting == LedgerPostingType::PurchConsump))");
AX не пытается преобразовать их в метки, поэтому они остаются в виде отдельных значений, а не выводятся как метки.Обратите внимание, что скобки необходимы для его правильного анализа.
Поскольку ILLEGAL_VALUE может появляться даже при попытке использовать одно значение, которое содержит запятую в метке, то же самое можно сделатьдля одного:
ledgerPostingRange.value("(LedgerTrans.Posting == LedgerPostingType::PurchReceipt)");