Цитата: FerroPanda ➤ Цель простая - отчёты по третьему регистру для общепита.
У меня аналогичная цель - свой запрос Справки1, кучу времени потратил пока получилось выгрузить запрос в УТМ из 1С.
Код выгрузки из 1С 8.3 в УТМ запроса на получение остатка по справке 2 (у себя проверил - работает) будет таким:
ИдентификаторФСРАР = "030000255595";
АдресУТМ = "192.168.80.24";
ПортУТМ = 8080;
Таймаут = 60;
НомерСправки2 = "FB-000007625828248";
Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", "");
ИмяФайлаДляЗагрузки = КаталогВременныхФайлов() + "QueryRestBCode.xml";
ИмяФайлаОтвета = КаталогВременныхФайлов() + "answer.xml";
ОбъектXML = Новый ЗаписьXML();
ОбъектXML.ОткрытьФайл(ИмяФайлаДляЗагрузки);
ОбъектXML.ЗаписатьОбъявлениеXML();
ОбъектXML.ЗаписатьНачалоЭлемента("ns:Documents");
ОбъектXML.ЗаписатьАтрибут("Version", "1.0");
ОбъектXML.ЗаписатьСоответствиеПространстваИмен("ns", "http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01");
ОбъектXML.ЗаписатьСоответствиеПространстваИмен("qp", "http://fsrar.ru/WEGAIS/QueryParameters");
ОбъектXML.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance");
ОбъектXML.ЗаписатьНачалоЭлемента("ns:Owner");
ОбъектXML.ЗаписатьНачалоЭлемента("ns:FSRAR_ID");
ОбъектXML.ЗаписатьТекст(ИдентификаторФСРАР);
ОбъектXML.ЗаписатьКонецЭлемента();//ns:FSRAR_ID
ОбъектXML.ЗаписатьКонецЭлемента();//ns:Owner
ОбъектXML.ЗаписатьНачалоЭлемента("ns:Document");
ОбъектXML.ЗаписатьНачалоЭлемента("ns:QueryRestBCode");
ОбъектXML.ЗаписатьНачалоЭлемента("qp:Parameters");
ОбъектXML.ЗаписатьНачалоЭлемента("qp:Parameter");
ОбъектXML.ЗаписатьНачалоЭлемента("qp:Name");
ОбъектXML.ЗаписатьТекст("ФОРМА2");
ОбъектXML.ЗаписатьКонецЭлемента();//qp:Name
ОбъектXML.ЗаписатьНачалоЭлемента("qp:Value");
ОбъектXML.ЗаписатьТекст(НомерСправки2);
ОбъектXML.ЗаписатьКонецЭлемента();//qp:Value
ОбъектXML.ЗаписатьКонецЭлемента();//qp:Parameter
ОбъектXML.ЗаписатьНачалоЭлемента("qp:Parameter");
ОбъектXML.ЗаписатьНачалоЭлемента("qp:Name");
ОбъектXML.ЗаписатьТекст("ОБЩЕПИТ");
ОбъектXML.ЗаписатьКонецЭлемента();//qp:Name
ОбъектXML.ЗаписатьНачалоЭлемента("qp:Value");
ОбъектXML.ЗаписатьТекст("true");
ОбъектXML.ЗаписатьКонецЭлемента();//qp:Value
ОбъектXML.ЗаписатьКонецЭлемента();//qp:Parameter
ОбъектXML.ЗаписатьКонецЭлемента();//qp:Parameters
ОбъектXML.ЗаписатьКонецЭлемента();//ns:QueryRestBCode
ОбъектXML.ЗаписатьКонецЭлемента();//ns:Document
ОбъектXML.ЗаписатьКонецЭлемента();//ns:Documents
ОбъектXML.ЗаписатьТекст(Символы.ПС);
ОбъектXML.Закрыть();
ПостроительDOM = Новый ПостроительDOM;
ЧтениеXML=Новый ЧтениеXML ;
ЧтениеXML.ОткрытьФайл(ИмяФайлаДляЗагрузки);
ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);
ЧтениеXML.Закрыть();
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
ЗаписьDOM = Новый ЗаписьDOM;
ЗаписьDOM.Записать(ДокументDOM, ЗаписьXML);
ТекстЗапроса = ЗаписьXML.Закрыть();
ТелоЗапроса = Новый ТекстовыйДокумент();
ТелоЗапроса.РазделительСтрок = Символы.CR+Символы.LF;
ТелоЗапроса.ДобавитьСтроку("--" + Boundary);
ТелоЗапроса.ДобавитьСтроку("Content-Disposition: form-data; name=""xml_file""; filename=""QueryRestBCode.xml");
ТелоЗапроса.ДобавитьСтроку("Content-Type: text/xml; charset=utf-8");
ТелоЗапроса.ДобавитьСтроку("");
ТелоЗапроса.ДобавитьСтроку(ТекстЗапроса);
ТелоЗапроса.ДобавитьСтроку("--" + Boundary + "--");
ТелоЗапросаСтрока = ТелоЗапроса.ПолучитьТекст();
ЗапросHTTP = Новый HTTPЗапрос("/opt/in/QueryRestBCode");
ЗапросHTTP.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + Boundary);
ЗапросHTTP.УстановитьТелоИзСтроки(ТелоЗапросаСтрока, КодировкаТекста.UTF8);
Соединение = Новый HTTPСоединение(
СокрЛП(АдресУТМ),
ПортУТМ,,,
,
Таймаут);
ОтветHTTP = Соединение.ОтправитьДляОбработки(ЗапросHTTP, ИмяФайлаОтвета);
ТекстОтвета = ОтветHTTP.ПолучитьТелоКакСтроку();
ЗапросHTTP = Неопределено;
ЧтениеОтвета = Неопределено;