Rest 奥达塔。某些字符串字段的筛选器不工作

Rest 奥达塔。某些字符串字段的筛选器不工作,rest,odata,filtering,Rest,Odata,Filtering,Im使用ODataV3和1C Enterprise 8.3.10。在ApacheTomcat2.2上。 这个问题 ?$top=1 返回这样的结果: <d:Result xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:type="Collection(Standar

Im使用ODataV3和1C Enterprise 8.3.10。在ApacheTomcat2.2上。 这个问题 ?$top=1
返回这样的结果:

<d:Result xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:type="Collection(StandardODATA.AccountingRegister_Типовой_Balance)">
    <d:element m:type="StandardODATA.AccountingRegister_Типовой_Balance">
        <d:Account_Key>8064bbd7-6b39-11e1-978d-00265502bde5</d:Account_Key>
        <d:ExtDimension1>3e0969a1-6b39-11e1-978d-00265502bde5</d:ExtDimension1>
        <d:ExtDimension1_Type>StandardODATA.Catalog_ОсновныеСредства</d:ExtDimension1_Type>
        ...            
    </d:element>
</d:Result>

8064bbd7-6b39-11e1-978d-002655025
3e0969a1-6b39-11e1-978d-002655025
标准数据目录
...            
当我尝试添加过滤器时?$top=1和$filter=ExtDimension1等式'3e0969a1-6b39-11e1-978d-00265502bde5'
它返回空结果。
“ExtDimension1”字段的类型是Edm.String,而不是guid
(来自$metadata)


...
我也尝试过这样过滤:
$filter=ExtDimension1 eq guid'3e0969a1-6b39-11e1-978d-00265502bde5'
但它返回一个错误

如果我用另一个字段过滤 (例如ExtDimension1_Type)它工作正常。
有人知道如何按“ExtDimension1”字段过滤吗

更新
下面是元数据中Balance()函数的说明。希望它会有用

<FunctionImport Name="Balance" IsBindable="true" IsSideEffecting="false" ReturnType="Collection(StandardODATA.AccountingRegister_Типовой_Balance)">
    <Parameter Name="bindingParameter" Type="StandardODATA.AccountingRegister_Типовой"/>
    <Parameter Name="AccountCondition" Type="Edm.String"/>
    <Parameter Name="Condition" Type="Edm.String"/>
    <Parameter Name="Dimensions" Type="Edm.String"/>
    <Parameter Name="ExtraDimensions" Type="Edm.String"/>
    <Parameter Name="Period" Type="Edm.DateTime"/>
</FunctionImport>

试试: ?$top=1和$filter=ExtDimension1等式'3e0969a1-6b39-11e1-978d-00265502B' 例如,删除“()”或 指定编号:
?$top=1和$filter=ExtDimension1等式'3e0969a1-6b39-11e1-978d-00265502bde5'

我遇到了类似的问题,并找到了解决方案

$filter=ExtDimension1 eq cast('3e0969a1-6b39-11e1-978d-00265502bde5', 'Catalog_ОсновныеСредства')

删除“()”不会更改结果。平衡是一个函数,当我输入一个数字时会出错。我更新了我的问题。感谢您提供了有用的答案,在我的例子中,它在cast函数中与guid一起工作:$filter=ExtDimension1 eq cast(guid'3e0969a1-6b39-11e1-978d-00265502bde5','Catalog拞С拞拞С拞拞拞拞拞拞
$filter=ExtDimension1 eq cast('3e0969a1-6b39-11e1-978d-00265502bde5', 'Catalog_ОсновныеСредства')