Специалисты, начиная работать с OData, сталкиваются с трудностями с первых шагов - не очевидно какие именно данные может дать источник и какие механики доступны для формирования выборок данных. Так возникла идея написать обработку, которая позволяет проанализировать структуру и содержимое источника OData, а так же станет примером кода для всех тех, кто делает свою интеграцию на платформе 1С:Предприятие 8.
(1) в Odata нет непосредственных операций над множествами. Можно делать только группу ИЛИ, в которой перечислять сравнения с каждым из элементов массива.
Поддерживаются лямбда-функции для фильтров по вложенным множествам (пример - табличная часть документа), но для вашей задачи это не поможет. Если интересно, то там есть две функции:
any - возвращает True, если в подчиненной коллекции есть хоть одна запись, которая удовлетворяет условию из этой функции;
all - возвращает True, если в подчиненной коллекции все записи удовлетворяют условию из функции.
Добрый день! Интересная статья! Хотел бы задать вопрос! Я на Python через OData хочу осуществить PATCH запрос, для изменения контактной информации в 1С. Я прилагаю такое тело запроса:
{
"Вид": "c2eb441c-4e2a-11ea-2f8e-000c2972e4a3",
"Вид_Type": "StandardODATA.Catalog_ВидыКонтактнойИнформации",
"Объект": "24e3a680-022d-11eb-f583-000c2972e4a3",
"Объект_Type": "StandardODATA.Catalog_ФизическиеЛица",
"Поле3": "87071112233",
"Представление": "87071112233",
"Тип": "Телефон"
},
где Вид - это ref_key вида контактной информации, Объект - это ref_key физического лица.
где guid - это ref_key вида контактной информации.
Когда я отправляю patch запрос, выскакивает ошибка - "The field that specifies type is not found for the Объект property, which has composite or binary type!"
Как я понял, запрос не может найти такой вид контактной информации для физического лица, которого я указал. Но я никак не пойму почему это так, если я всего лишь изменяю Представление и Поле3 телефона в ответе get запроса на ту же самую КонтактнуюИнформацию.
Буду рад любой помощи, объяснении моих ошибок и просто критике!
(0) Я так понимаю данная обработка только для чтения информации. А из предыдущей статьи - для редактирования.
а есть объединенная версия? чтобы сперва получить данные, а потом сформировать запрос для редактирования...
(6) мысль интересная. Поразмышляю над нею во время новогодних праздников. Изначально я отверг данную возможность, но сейчас думаю, что можно отредактировать те данные, которые получены.