# Обмен между 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);
			
			ЧекОбъект.ОбменДанными.Загрузка = Истина;
			
			ЧекОбъект.Записать();
			
		КонецЦикла;
		
	КонецЕсли;
	
КонецФункции

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

ЗагрузкаЧеков.epf (opens new window)

Last Updated: 10/14/2022, 7:33:43 PM