Пример 1С 8.2...8.3


Данный пример для 1С 8.2 и 8.3
Для 1С 7.7 схема похожая - отправка происходит прямым HTTP POST запросом с тремя переменными. ! Мы считаем, что XML строку вы уже подготовили


Обработка 1С

Функция ОтправитьHttpPost()
	
	// Формируем данные XML для отправки(из примера в текст, здесь формируете свои данные!!! Можно вынести в отдельную Функцию и заполнять в цикле.)
	ЗаписьXML = Новый ЗаписьXML;
	ЗаписьXML.УстановитьСтроку();
	ЗаписьXML.ЗаписатьОбъявлениеXML();
	ЗаписьXML.ЗаписатьНачалоЭлемента("documents");
	ЗаписьXML.ЗаписатьАтрибут("date_from", Строка("2017-01-01"));
	ЗаписьXML.ЗаписатьАтрибут("date_to",   Строка("2017-01-15"));
	ЗаписьXML.ЗаписатьНачалоЭлемента("doc");
	ЗаписьXML.ЗаписатьАтрибут("id",         Строка("RF001"));
	ЗаписьXML.ЗаписатьАтрибут("date",       Строка("2017-01-01"));
	ЗаписьXML.ЗаписатьАтрибут("tt_id",      Строка("TUOUI2349"));
	ЗаписьXML.ЗаписатьАтрибут("tt_address", Строка("Омск, ул.Улица, д. 14"));
	ЗаписьXML.ЗаписатьАтрибут("tt_org",     Строка("ООО Рога"));
	ЗаписьXML.ЗаписатьАтрибут("tp_id",      Строка("YGK12ft"));
	ЗаписьXML.ЗаписатьАтрибут("tp_name",    Строка("Иванов Сергей"));
	ЗаписьXML.ЗаписатьНачалоЭлемента("sku");
	ЗаписьXML.ЗаписатьАтрибут("id",          Строка("RIJU6791"));
	ЗаписьXML.ЗаписатьАтрибут("name",        Строка("Мягкие сухарики 1"));
	ЗаписьXML.ЗаписатьАтрибут("weight_type", Строка("box"));
	ЗаписьXML.ЗаписатьАтрибут("quantity",    Строка("10"));
	ЗаписьXML.ЗаписатьАтрибут("sum",         Строка("104.15"));
	ЗаписьXML.ЗаписатьАтрибут("action",      Строка(""));
	ЗаписьXML.ЗаписатьКонецЭлемента();
	ЗаписьXML.ЗаписатьКонецЭлемента();
	ЗаписьXML.ЗаписатьКонецЭлемента();
	ТекстXML = ЗаписьXML.Закрыть();
	
	// Создадим новое HTTP соединение с указанием сервера
	ИмяСервера = "auto.russkart.com";
	РесурсНаСервере = "/distributor_document/";
	
	Попытка
		Соединение =  Новый HTTPСоединение(ИмяСервера,,,);
	Исключение
		Сообщить("Не удалось установить соединение с сервером:" 
		+ Символы.ПС + ИнформацияОбОшибке().Описание, СтатусСообщения.Важное);
		//Возврат Ложь;
	КонецПопытки;
	
	// Получим временный файл для передачи в теле POST запроса
	ФайлТелаЗапроса = ПолучитьИмяВременногоФайла();
	
	// Запишем в файл содержимое тела запроса (текст)
	ТекстФайл = Новый ТекстовыйДокумент;
	
	ТекстФайл.ДобавитьСтроку("POST /distributor_document/ HTTP/1.1");
	ТекстФайл.ДобавитьСтроку("Host: auto.russkart.com");
	ТекстФайл.ДобавитьСтроку("Cache-Control: no-cache");
	ТекстФайл.ДобавитьСтроку("Postman-Token: bd0839b6-c5c3-b804-aed5-0d943fe72735");
	ТекстФайл.ДобавитьСтроку("Content-Type: multipart/form-data; boundary=-------------573cf973d5228");
	ТекстФайл.ДобавитьСтроку("---------------573cf973d5228");
	ТекстФайл.ДобавитьСтроку("Content-Disposition: form-data; name=""login""" + Символы.ВК + Символы.ПС);
	ТекстФайл.ДобавитьСтроку("488255ea401a70856fe4ccbbb9ab7155645abcfc");
	ТекстФайл.ДобавитьСтроку("---------------573cf973d5228");
	ТекстФайл.ДобавитьСтроку("Content-Disposition: form-data; name=""pswd""" + Символы.ВК + Символы.ПС);
	ТекстФайл.ДобавитьСтроку("iloverusskart");
	ТекстФайл.ДобавитьСтроку("---------------573cf973d5228");
	ТекстФайл.ДобавитьСтроку("Content-Disposition: form-data; name=""xml""" + Символы.ВК + Символы.ПС);
	ТекстФайл.ДобавитьСтроку(ТекстXML);
	ТекстФайл.ДобавитьСтроку("---------------573cf973d5228--");
	
	ТекстФайл.Записать(ФайлТелаЗапроса, КодировкаТекста.UTF8);
	
	// Получим данные для передачи в заголовок
	ФайлНаОтправку = Новый Файл(ФайлТелаЗапроса);
	
	// Получим временный файл — тело ответа POST запроса
	ФайлРезультата = ПолучитьИмяВременногоФайла();
	
	// Заголовок создадим в виде соответствия
	ЗаголовокЗапросаHTTP = Новый Соответствие();
	
	// Передаем в заголовках данные и тип данных на отправку
	ЗаголовокЗапросаHTTP.Вставить("Content-Type", "multipart/form-data; boundary=-------------573cf973d5228");
	
	// Отсылаем POST запрос на обработку.
	Попытка
		Соединение.ОтправитьДляОбработки(ФайлТелаЗапроса, РесурсНаСервере, ФайлРезультата, ЗаголовокЗапросаHTTP);
		Соединение = Неопределено;
	Исключение
		Сообщить(ИнформацияОбОшибке().Описание, СтатусСообщения.Важное);
		//Возврат Ложь;
	КонецПопытки;
	
	// Получим ответ
	Ответ = Новый ТекстовыйДокумент();
	Ответ.Прочитать(ФайлРезультата, КодировкаТекста.UTF8);
	ТекстОтвета = Ответ.ПолучитьТекст();
	
	// Удалим временые файлы
	УдалитьФайлы(ФайлТелаЗапроса);
	УдалитьФайлы(ФайлРезультата);
	
	Если ТекстОтвета = "&lt;?xml version=""1.0"" encoding=""utf-8""?&gt; <results> <result code = ""200"" comment = ""Данные обновлены""/> </results>" Тогда
		Сообщить(ТекстОтвета);
		//Возврат Истина;
	Иначе
		Сообщить(ТекстОтвета);
		//Возврат Ложь;
	КонецЕсли;
	
КонецФункции