Взаимодействие с сервисом Яндекс Еда происходит на основании pull-модели. Т.е. сервис Яндекс Еда как клиент отправляет вам запросы, а вам, соответственно, необходимо разработать серверную часть в виде http-сервиса.
Особо сложного ничего нет. Методов всего четыре: авторизация, список товаров, список остатков товаров, создание заказа. Но если делать с нуля, отнимает много времени на технические детали. Особенно двухфакторная авторизация.
Я сделал расширение, в котором реализован работоспособный (проверенный Яндексом) http-сервис. В принципе, расширение универсально. Хотя оно тестировалась на УТ 11.5, с минимальными изменениями его можно применить в любой типовой или нетиповой конфигурации. В соответствующих местах кода даны комментарии на этот счет.
//Здесь создание документа Заказ клиента в УТ11
//Конфигурация может быть другой, в том числе не типовой
//Документ (или даже не документ, а что-то еще) может быть другим
//Все что Яндексу нужно от вас, это УИД созданного объекта
//Переделайте этот блок в соответствии с вашими требованиями
новзаказ=документы.ЗаказКлиента.СоздатьДокумент();
новзаказ.Дата=текущаядата();
новзаказ.Контрагент=справочники.Контрагенты.РозничныйПокупатель;
новзаказ.Партнер=новзаказ.Контрагент.Партнер;
новзаказ.Организация=справочники.Организации.НайтиПоНаименованию("Организация");
новзаказ.Статус=перечисления.СтатусыЗаказовКлиентов.КОтгрузке;
новзаказ.Приоритет=справочники.Приоритеты.НайтиПоНаименованию("Средний");
новзаказ.Склад=справочники.Склады.НайтиПоНаименованию("Центральный склад");
чт=новый ЧтениеJSON;
чт.УстановитьСтроку(Запрос.ПолучитьТелоКакСтроку());
вхд=ПрочитатьJSON(чт);
для каждого стр из вхд.items цикл
//В запросе передается ссылка на склад
//Идея Яндекса в том, чтобы качать не весь справочник товаров,
//а только те, что относятся к определенному складу(магазину) что бы это ни значило.
//Поэтому я передаю информацию по товарам, которые сейчас есть в остатках на данном складе
//Вы можете переделать это в соответствии с вашими требованиями
элементы=новый массив;
ид=Запрос.ПараметрыURL["placeId"];
строкауид=лев(ид,8)+"-"+сред(ид,9,4)+"-"+сред(ид,13,4)+"-"+сред(ид,17,4)+"-"+прав(ид,12);
склад=справочники.склады.получитьссылку(новый УникальныйИдентификатор(строкауид));
запрос=новый запрос;
запрос.Текст=
"ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
| ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК ТоварыНаСкладахОстатки";
запрос.УстановитьПараметр("Склад",склад);
выб=запрос.Выполнить().Выбрать();
пока выб.Следующий() цикл
Надеюсь, это позволит вам сделать свою интеграцию с сервисом Яндекс Еда быстро и легко.
Тестировал на 8.3.23.1739.
Т.к. это http-сервис, то управляемость(неуправляемость) форм значения не имеет.
UPD 15.03.2024
Исправлены выявленные ошибки
UPD 30.03.2024
Реализованы методы СтатусЗаказа и ОтменаЗаказа. Внесены исправления в соответствии с изменившейся спецификацией от Яндекс
UPD 04.05.2024
Добавлен метод СоставЗаказа. Он располагается в одной ветке с отменой заказа. Для отмены используется DELETE, для состава заказа GET.