Добрый день!
Хочу представить пример обработки для отправки данных в SPOT 2D (Данная обработка НЕ ФОРМИРУЕТ файлы)
посредством http запросов
Эта обработка работает в версии 1С 8.3 на управляемых формах.
Есть публикации, в которых это уже реализовано, но под более ранние версии 1С.
В данной обработке используются 2 метода передачи данных на выбор:
1) Встроенный метод 1С — методом УстановитьТелоИзСтроки HTTP запроса.
Пробовал метод УстановитьИмяФайлаТела, но почему то не получилось
2) Посредством COM объекта WinHttp.WinHttpRequest.5.1
(он более универсален, т.к. при необходимости позволяет его адаптировать в 1С 7.7)
В интерфейсе обработки нужно указать каталог файлов загрузки (можно выбрать), маску файлов (по умолчанию *.csv),
сервер, адрес (ресурс сервера), пользователя, пароль и ID. Можно выбрать альтернативный метод отправки — галочка методом Win http, и предусмотрено удаление файлов запросов — соответствующая галочка.
Общий алгоритм:
В указанном каталоге ищутся все файлы по маске, и производится отправка каждого с выводом сообщения ответа сервера.
Занялся этой обработкой, т.к. не нашел готовой, а у многих, вижу, были проблемы с http запросами. И ещё искал альтернативу программе curl.
Обработка тестировалась на платформе 1С:Предприятие 8.3 (8.3.14.1565)
WinHttp менее универсальный из-за того, что работает только под виндой.
(1) Да, это понятно, что только под Windows. Я имел в виду возможность адаптации под 1С 7.7, которой случается ещё пользуются.
(2) Тоже вариант решения. Я пробовал УстановитьИмяФайлаТела, но не срабатывало. Я думал о варианте с УстановитьТелоИзДвоичныхДанных, но мне не понравилась идея с конвертацией в бинарный формат когда можно сразу строку передать параметром (мне кажется этот способ передает меньший объем). Со строкой тоже нюансы. Если файл большой, то уже нельзя использовать строковую переменную, нужно записать текстовый файл, а потом передать параметром
УстановитьТелоИзСтроки(ФайлДляПередачи.ПолучитьТекст())
или
WinHttp.Send(ФайлДляПередачи.ПолучитьТекст())