1C查询中枚举类型字段筛选报错,求问题排查及正确写法
1C查询枚举字段筛选错误排查与正确写法
错误原因
你在WHERE子句中引用枚举时错误添加了Enums.前缀,1C查询语言中引用枚举类型不需要该前缀,直接使用枚举的实际名称即可。
正确写法
假设InOut字段对应的枚举类型名称为MoneyInOut(与文档名称同名是允许的),修正后的查询代码如下:
SELECT MoneyInOut.Date AS Date, MoneyInOut.InOut AS InOut, MoneyInOut.Currency AS Currency, MoneyInOut.Value AS Value, MoneyInOut.Comment AS Comment FROM Document.MoneyInOut AS MoneyInOut WHERE MoneyInOut.InOut = VALUE(MoneyInOut.In)
如果InOut字段对应的枚举类型是其他名称(比如InOutType),则将枚举类型名替换为实际名称即可,例如:
WHERE MoneyInOut.InOut = VALUE(InOutType.In)
另外,也可以直接使用枚举值的内部代码进行筛选(假设"In"对应的代码为1),这种写法也能生效,但可读性不如VALUE方式:
WHERE MoneyInOut.InOut = 1
内容的提问来源于stack exchange,提问作者IT Student
相关产品推荐
相关产品推荐

