Формирование запроса Odata со связанными сущностями

1. G_102932619011876891093 27.11.21 08:21 Сейчас в теме
Подскажите пожалуйста каким должен быть запрос что бы я мог сделать поиск по номенклатуре пытаюсь вот так вот получить остатки по определенному складу без поиска
AccumulationRegister_ТоварыНаСкладах/Balance(Condition='Склад_Key eq guid'f0e115ed-9b91-11eb-a165-3085a93c0618'')?&$expand=Номенклатура,Склад=$format=application/json

Все приходит как и ожидалось
{
"value": [
{
"Склад_Key": "f0e115ed-9b91-11eb-a165-3085a93c0618",
"Номенклатура_Key": "8610749f-e215-11ea-a242-3085a93c0618",
"Качество_Key": "d05404a0-6bce-449b-a798-41ebe5e5b977",
"ХарактеристикаНоменклатуры_Key": "00000000-0000-0000-0000-000000000000",
"СерияНоменклатуры_Key": "00000000-0000-0000-0000-000000000000",
"КоличествоBalance": 1,
"Склад": {
"Description": "Электрон",
"Parent@navigationLinkUrl": "Catalog_Склады(guid'f0e115ed-9b91-11eb-a165-3085a93c0618')/Parent",
"ТипЦенРозничнойТорговли@navigationLinkUrl": "Catalog_Склады(guid'f0e115ed-9b91-11eb-a165-3085a93c0618')/ТипЦенРозничнойТорговли",
"Подразделение@navigationLinkUrl": "Catalog_Склады(guid'f0e115ed-9b91-11eb-a165-3085a93c0618')/Подразделение"
},
"Номенклатура": {
"Description": "Дисплей (Модуль) для Samsung Galaxy A6 2018 (SM-A600F) в сборе с тачскрином Черный - Amoled",
"Ref_Key": "8610749f-e215-11ea-a242-3085a93c0618",
"Parent@navigationLinkUrl": "Catalog_Номенклатура(guid'8610749f-e215-11ea-a242-3085a93c0618')/Parent",
"ВидНоменклатуры@navigationLinkUrl": "Catalog_Номенклатура(guid'8610749f-e215-11ea-a242-3085a93c0618')/ВидНоменклатуры",
"БазоваяЕдиницаИзмерения@navigationLinkUrl": "Catalog_Номенклатура(guid'8610749f-e215-11ea-a242-3085a93c0618')/БазоваяЕдиницаИзмерения",
"ЕдиницаДляОтчетов@navigationLinkUrl": "Catalog_Номенклатура(guid'8610749f-e215-11ea-a242-3085a93c0618')/ЕдиницаДляОтчетов",
"ЕдиницаХраненияОстатков@navigationLinkUrl": "Catalog_Номенклатура(guid'8610749f-e215-11ea-a242-3085a93c0618')/ЕдиницаХраненияОстатков",
"НоменклатурнаяГруппа@navigationLinkUrl": "Catalog_Номенклатура(guid'8610749f-e215-11ea-a242-3085a93c0618')/НоменклатурнаяГруппа",
"ОсновноеИзображение@navigationLinkUrl": "Catalog_Номенклатура(guid'8610749f-e215-11ea-a242-3085a93c0618')/ОсновноеИзображение",
"ОсновнойПоставщик@navigationLinkUrl": "Catalog_Номенклатура(guid'8610749f-e215-11ea-a242-3085a93c0618')/ОсновнойПоставщик",
"ОтветственныйМенеджерЗаПокупки@navigationLinkUrl": "Catalog_Номенклатура(guid'8610749f-e215-11ea-a242-3085a93c0618')/ОтветственныйМенеджерЗаПокупки"
}
Показать


Пытаюсь сделать нечто подобное
AccumulationRegister_ТоварыНаСкладах/Balance(Condition='Склад_Key eq guid'f0e115ed-9b91-11eb-a165-3085a93c0618'')?&$expand=Номенклатура,Склад&$filter=Номенклатура/any(d: d/Description eq 'Дисплей (Модуль) для Samsung Galaxy A6 2018 (SM-A600F) в сборе с тачскрином Черный - Amoled')=$format=application/json

Получаю ошибку
<m:error xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<m:code>-1</m:code>
<m:message>{(3, 109)}: Неправильный псевдоним ".Номенклатура" Ref IN ( SEL ECT Ref FR OM AccumulationRegister.ТоварыНаСкладах.Balance(, ( Склад ) = ( &cnp_Condition0 ) )<<?>>.Номенклатура WHERE ( Description ) = ( &fc_param0 ) )</m:message>
</m:error>

Вообще не уверен что я в правильном направлении смотрю, так как мне надо будет осуществлять поиск по части наименования
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user790708 29.11.21 13:34 Сейчас в теме
C Odata не работал, но судя по ошибке и описанию в документации, в запросах к виртуапьным таблицам (Balance - виртуальная таблица остатков) надо использовать conditions. $filter используется для выборки движений. Повидимому их нельзя смешивать в одном запросе.
Возможно в разных версиях 1с это поведение может отличаться.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот