Получает имя файла, откуда будет считано тело запроса при отправке.
Синтаксис
ПолучитьИмяФайлаТела()Полное описание, параметры и ограничения
HTTPЗапрос.ПолучитьИмяФайлаТела (HTTPRequest.GetBodyFileName)
HTTPЗапрос (HTTPRequest)
ПолучитьИмяФайлаТела (GetBodyFileName)
Доступен, начиная с версии 8.2.
Синтаксис:
ПолучитьИмяФайлаТела()
Возвращаемое значение:
Тип: Строка, Неопределено.
Неопределено - имя файла не было установлено.
Описание:
Получает имя файла, откуда будет считано тело запроса при отправке.
Доступность:
Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
Практические примеры
Отправить тело из временного файла и сохранить ответ в другой файл
Имена файлов создаёт 1С. Удаляем только эти два учебных временных файла; файлы пользователя не используются.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
В PowerShell запустите: & "C:\Program Files\nodejs\node.exe" "C:\Opencart_project\AmaDesk\tools\1c-platform-context-8.5.1.1343\guide-http-mock.cjs". Оставьте терминал открытым; остановка — Ctrl+C.
Используйте учебную файловую базу на том же компьютере. В клиент-серверной базе 127.0.0.1 означает машину сервера 1С, а не компьютер пользователя.
Перед новым самостоятельным примером перезапустите учебный HTTP-сервер: это восстанавливает вымышленные товары A-01 и B-02. Рабочие базы и Avito этот сервер не использует.
Если порт 18785 занят, сначала выясните, какой процесс его занимает; не останавливайте чужую службу. Не меняйте пример на адрес рабочего API.
Серверному процессу 1С нужна запись в собственный временный каталог. Не подставляйте пути к существующим пользовательским файлам.
Соединение = Новый HTTPСоединение("127.0.0.1", 18785, , , , 10, Неопределено);
ВходнойФайл = ПолучитьИмяВременногоФайла("bin");
ВыходнойФайл = ПолучитьИмяВременногоФайла("bin");
Попытка
Данные = ПолучитьДвоичныеДанныеИзСтроки("abc", КодировкаТекста.UTF8, Ложь);
Данные.Записать(ВходнойФайл);
Запрос = Новый HTTPЗапрос("/guide/echo");
Запрос.УстановитьИмяФайлаТела(ВходнойФайл);
Сообщить(Запрос.ПолучитьИмяФайлаТела() = ВходнойФайл);
Ответ = Соединение.ОтправитьДляОбработки(Запрос, ВыходнойФайл);
Если Ответ.КодСостояния <> 200 Тогда
ВызватьИсключение "Не удалось сохранить ответ echo";
КонецЕсли;
Сообщить(Ответ.ПолучитьИмяФайлаТела() = ВыходнойФайл);
Прочитанное = Новый ДвоичныеДанные(ВыходнойФайл);
Сообщить(ПолучитьHexСтрокуИзДвоичныхДанных(Прочитанное));
Исключение
ФайлВхода = Новый Файл(ВходнойФайл);
Если ФайлВхода.Существует() Тогда
УдалитьФайлы(ВходнойФайл);
КонецЕсли;
ФайлВыхода = Новый Файл(ВыходнойФайл);
Если ФайлВыхода.Существует() Тогда
УдалитьФайлы(ВыходнойФайл);
КонецЕсли;
ВызватьИсключение;
КонецПопытки;
УдалитьФайлы(ВходнойФайл);
УдалитьФайлы(ВыходнойФайл);Разбор по шагам
ПолучитьИмяВременногоФайла создаёт уникальные имена, двоичные данные записываем только в подготовленный входной файл.
УстановитьИмяФайлаТела задаёт источник запроса, второй аргумент ОтправитьДляОбработки — файл для полученного ответа.
Проверяем обе привязки имён и читаем содержимое ответа.
При успехе и исключении удаляем только два файла, созданных этим запуском.
Как проверить результат
Оба сравнения имён дают Истина; содержимое выходного файла в Hex 616263.
После завершения оба временных файла отсутствуют.
При недоступном сервере входной временный файл также удаляется обработчиком исключения.
Ожидаемый результат
Отправка и сохранение тела выполнены через два изолированных временных файла.
На что обратить внимание
Пути в серверном коде относятся к серверу 1С, а не клиентскому компьютеру.
Внешний API может записать в выходной файл текст ошибки: всегда проверяйте статус до трактовки файла как успешного результата.
УдалитьФайлы допускает маски: здесь передаём только точные уникальные имена, не каталог и не шаблон.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.