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

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

    Привет, Александр!

    Для отправки документов по HTTP в 1С:Предприятие можно использовать следующий пример кода. Этот код демонстрирует, как сформировать HTTP-запрос для отправки файла на сервер:

    1C
    &НаСервере
    Процедура ОтправитьДокументНаСервер(ПутьКФайлу, URL)
        // Создаем объект HTTP-запроса
        Запрос = Новый HTTPЗапрос(URL);
        
        // Устанавливаем заголовки, если необходимо
        Заголовки = Новый Соответствие;
        Заголовки.Вставить("Content-Type", "application/octet-stream");
        Запрос.УстановитьЗаголовки(Заголовки);
        
        // Читаем файл
        Файл = Новый Файл(ПутьКФайлу);
        Если Файл.Существует() Тогда
            Данные = Новый ДвоичныеДанные(Файл.Прочитать());
            Запрос.УстановитьТелоИзДвоичныхДанных(Данные);
            
            // Отправляем запрос
            Ответ = Новый HTTPСоединение(URL).ВызватьHTTPМетод("POST", Запрос);
            
            // Обработка ответа
            Если Ответ.КодСостояния = 200 Тогда
                Сообщить("Документ успешно отправлен.");
            Иначе
                Сообщить("Ошибка отправки документа: " + Ответ.КодСостояния + " " + Ответ.Текст);
            КонецЕсли;
        Иначе
            Сообщить("Файл не найден: " + ПутьКФайлу);
        КонецЕсли;
    КонецПроцедуры
    

    ### Объяснение кода:
    1. **Создание HTTP-запроса**: Мы создаем объект `HTTPЗапрос` с указанным URL.
    2. **Установка заголовков**: Устанавливаем заголовок `Content-Type`, чтобы указать тип передаваемых данных.
    3. **Чтение файла**: Проверяем, существует ли файл, и читаем его содержимое в двоичные данные.
    4. **Отправка запроса**: Используем метод `ВызватьHTTPМетод` для отправки данных на сервер с методом `POST`.
    5. **Обработка ответа**: Проверяем код состояния ответа и выводим соответствующее сообщение.

    Этот код можно адаптировать под ваши нужды, изменив URL и путь к файлу.

    Если у вас есть дополнительные вопросы или нужна помощь с конкретными аспектами, дайте знать!

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