Найти в Дзене
Develop

Обмен между 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";
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина, "Обработка использует временное хранилище.");
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
НоваяКоманда = ПараметрыРег
Оглавление

Видео

Общие сведения

Начиная с версии 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);

ЧекОбъект.ОбменДанными.Загрузка = Истина;

ЧекОбъект.Записать();

КонецЦикла;

КонецЕсли;

КонецФункции

Пример обработки

ЗагрузкаЧеков.epf