# Обмен между 1С по-новому! Odata - это просто
# Видео
# Общие сведения
Начиная с версии 8.3.5 1С Предприятие умеет генерировать REST интерфейс для всей конфигурации, используя протокол OData.
Типичные операции, выполняемые с помощью стандартного интерфейса OData:
- Получение списка объектов системы с установленным отбором;
- Получение данных конкретного объекта системы;
- Создание нового и запись изменений существующего объекта системы;
- Проведение документа
Документация по использованию автоматического REST-сервиса (opens new window)
# Пример запроса OData
http://localhost/Retail/odata/standard.odata/Document_ЧекККМ?$format=json&$filter=Date ge datetime'2021-07-01T00:00:00'
# Пример кода обмена внешней обработки
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.Версия = "22.10.14";
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина, "Обработка использует временное хранилище.");
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр("ru = 'Загрузка данных'");
НоваяКоманда.Идентификатор = "ЗагрузкаДанных";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
НоваяКоманда.ПоказыватьОповещение = Истина;
Возврат ПараметрыРегистрации;
КонецФункции
Функция ВыполнитьКоманду(Идентификатор, ПараметрыКоманды) Экспорт
Если Идентификатор = "ЗагрузкаДанных" Тогда
HTTPСоединение = Новый HTTPСоединение("localhost", 80, "admin");
HTTPЗапрос = Новый HTTPЗапрос("/Retail/odata/standard.odata/Document_ЧекККМ?$format=json&$filter=Date ge datetime'2021-07-01T00:00:00'");
HTTPОтвет = HTTPСоединение.ВызватьHTTPМетод("GET", HTTPЗапрос);
ОтветСтрока = HTTPОтвет.ПолучитьТелоКакСтроку();
ЧтениеJSON = Новый ЧтениеJSON();
ЧтениеJSON.УстановитьСтроку(ОтветСтрока);
ОтветСоответствие = ПрочитатьJSON(ЧтениеJSON, Истина);
МассивЧеков = ОтветСоответствие["value"];
Для Каждого ЧекСоответствие из МассивЧеков Цикл
ЧекОбъект = Документы.РозничнаяПродажа.СоздатьДокумент();
ЧекОбъект.СуммаДокумента = ЧекСоответствие["СуммаДокумента"];
ОрганизацияУникальныйИдентификатор = Новый УникальныйИдентификатор(ЧекСоответствие["Организация_Key"]);
ОрганизацияСсылка = Справочники.Организации.ПолучитьСсылку(ОрганизацияУникальныйИдентификатор);
ЧекОбъект.Организация = ОрганизацияСсылка;
ЧекОбъект.Дата = ПрочитатьДатуJSON(ЧекСоответствие["Date"], ФорматДатыJSON.ISO);
ЧекОбъект.ОбменДанными.Загрузка = Истина;
ЧекОбъект.Записать();
КонецЦикла;
КонецЕсли;
КонецФункции