Имя: Пароль:
1C
 
Отправка POST запроса в Честный знак
0 IVT_2009
 
11.11.21
08:28
Добрый день!

Есть запрос на отправку акта списания табачной продукции в Честный знак.

<code>
ПолеФормы = Новый Структура;
    ПолеФормы.Вставить("ИмяПоля",  "jsonFile");
    ПолеФормы.Вставить("ИмяФайла", "data.json");
    ПолеФормы.Вставить("Тип",      "application/json");
    ПолеФормы.Вставить("Тело",     СериализованнаяСтрока);
    
    ПоляФормы = Новый Массив;
    ПоляФормы.Добавить(ПолеФормы);
        
    ДанныеПреобразования = ДвоичныеДанныеPOSTЗапросаКакФорма(ПоляФормы);
    ТелоЗапроса = ДанныеПреобразования.ДвоичныеДанные;
    Размер      = ДанныеПреобразования.Размер;
    
    ТокенДоступа = вернутьТокен();
    ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Новый СертификатыУдостоверяющихЦентровОС());
    HTTPСоединение = Новый HTTPСоединение("markirovka.crpt.ru", 443, ,,, 60, ЗащищенноеСоединение);
    ЗаголовокHTTP = Новый Соответствие();
    
    а = мрМаркировка.подписатьЭлементомСписка(СериализованнаяСтрока, 1);
    
    ЗаголовокHTTP.Вставить("X-Signature", а);
    ЗаголовокHTTP.Вставить("Content-Type", "multipart/form-data; boundary="+ДанныеПреобразования.Разделитель);
    ЗаголовокHTTP.Вставить("Accept", "application/json");
    ЗаголовокHTTP.Вставить("Accept-Charset", "utf-8");
    ЗаголовокHTTP.Вставить("Content-Lenght", Формат(Размер, "ЧН=0; ЧГ=0;"));
    ЗаголовокHTTP.Вставить("Authorization",   "Bearer " + ТокенДоступа);
            
    ПараметрыURL = Новый Массив;
    ПараметрыURL.Добавить("pg=tobacco");
    URLЗапроса     = "/api/v3/true-api/documents/dropped-out/create";
    HTTPЗапрос  = Новый HTTPЗапрос(URLЗапроса, ЗаголовокHTTP);
    HTTPЗапрос.УстановитьТелоИзСтроки("jsonFile="+ТелоЗапроса);
    
    Ответ1 = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
    ответ = Ответ1.ПолучитьТелоКакСтроку();
</code>

На выходе жалуется, что: {"error_message":"Должно быть заполнено одно поле xmlFile или jsonFile"}

В документации написано :
Пример запроса для документа в формате * .xml:
curl -X POST "<url стенда>/documents/dropped-out/create"
-H "X-Signature: <string>"
-H "Content-Type: multipart/form-data"
-H "accept: application/json"
-H"Authorization: Bearer <Токен>"
--form "xmlFile=@/C:/Users/Desktop/XXX.xml"    

как в 1с указать конструкцию: --form "xmlFile=@/C:/Users/Desktop/XXX.xml" и что это такое ?
1 IVT_2009
 
11.11.21
08:58
Проблема пока решена:
я передал в тело сжатые данные, а нужно было строкой
2 IVT_2009
 
12.11.21
12:38
Другой вопрос. Кто делал интеграцию по табаку, что содержится в поле: X-Signature ?
Подписанный открепленной подписью и зашифрованный документ или открепленная подпись?
Возможно есть пример отправки документа из под 1с ?
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс