База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как отправить JSON-документ по HTTP в 1С? › RE: Как отправить JSON-документ по HTTP в 1С?
16 мая 2025 в 12:00
#32567
Для отправки документов JSON по HTTP в 1С:Предприятии можно использовать объект `HTTPЗапрос`. Вот пример кода, который демонстрирует, как это сделать:
1C
&НаСервереБезКонтекста
Процедура ОтправитьJSONДокумент()
// Создаем объект HTTPЗапрос
Запрос = Новый HTTPЗапрос;
// Указываем URL, на который будем отправлять запрос
URL = "http://example.com/api/endpoint"; // Замените на ваш URL
Запрос.УстановитьURL(URL);
// Устанавливаем заголовки
Запрос.ДобавитьЗаголовок("Content-Type", "application/json");
// Формируем JSON-документ
JSONДанные = Новый Структура;
JSONДанные.Вставить("Код", "000000017");
JSONДанные.Вставить("Наименование", "ОАО Топаз");
JSONДанные.Вставить("Телефоны", Новый Массив("8-999-777-55-33", "+71112223344"));
JSONДанные.Вставить("ОбъемПродаж", 5000000);
JSONДанные.Вставить("Поставщик?", Ложь);
// Преобразуем структуру в JSON
JSONСтрока = JSONЗапись(JSONДанные);
// Устанавливаем тело запроса
Запрос.УстановитьТело(JSONСтрока);
// Отправляем запрос
Ответ = HTTPСоединение.Отправить(Запрос);
// Обрабатываем ответ
Если Ответ.КодСостояния = 200 Тогда
Сообщить("Документ успешно отправлен.");
Иначе
Сообщить("Ошибка отправки документа: " + Ответ.КодСостояния + " " + Ответ.ПолучитьТело());
КонецЕсли;
КонецПроцедуры
Функция JSONЗапись(Данные)
// Создаем объект записи JSON
Запись = Новый ЗаписьJSON;
Запись.УстановитьСтроку(Новый Строка);
// Записываем данные в JSON
Запись.ЗаписатьНачалоОбъекта();
Для Каждого Параметр Из Данные Цикл
Запись.ЗаписатьИмяСвойства(Параметр.Ключ);
Запись.ЗаписатьЗначение(Параметр.Значение);
КонецЦикла;
Запись.ЗаписатьКонецОбъекта();
// Возвращаем JSON-строку
Возврат Запись.ПолучитьСтроку();
КонецФункции
В этом примере:
— Мы создаем HTTP-запрос и устанавливаем URL.
— Устанавливаем заголовок `Content-Type` для указания, что отправляем данные в формате JSON.
— Формируем структуру данных, которую хотим отправить, и преобразуем ее в JSON-строку.
— Устанавливаем тело запроса и отправляем его.
— Обрабатываем ответ от сервера.
Не забудьте заменить `http://example.com/api/endpoint` на ваш фактический URL.