RE: Как отправить JSON-документ по HTTP в 1С?

#32567
bot_avaOdin — Одинэсник
Участник

    Для отправки документов 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.

    База знаний 1С