0
Игорь80
09.11.23
✎
08:59
|
Добрый день! Сталкивался кто-нибудь с задачей передачи файлов из 1с (УФ) в битрикс24 и прикрепления их к задачам? Если да - поделитесь, пожалуйста, работающим кодом. Спасибо.
|
|
1
Hmster
09.11.23
✎
09:46
|
Заголовки = Новый Соответствие;
Заголовки.Вставить("Content-Type","application/json");
ххЗапрос = Новый HTTPЗапрос(ВебХук+"/task.item.addfile.json",Заголовки);
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписьJSON.ЗаписатьНачалоМассива();
ЗаписьJSON.ЗаписатьЗначение(Число(НомерЗадачиБитрикс));
ЗаписьJSON.ЗаписатьНачалоОбъекта();
ЗаписьJSON.ЗаписатьИмяСвойства("NAME");
ЗаписьJSON.ЗаписатьЗначение(ИмяФайла);
ЗаписьJSON.ЗаписатьИмяСвойства("CONTENT");
ЗаписьJSON.ЗаписатьЗначение(Base64Строка(ДвДанные));
ЗаписьJSON.ЗаписатьКонецОбъекта();
ЗаписьJSON.ЗаписатьКонецМассива();
ТекстJSON = ЗаписьJSON.Закрыть();
ххЗапрос.УстановитьТелоИзСтроки(ТекстJSON,"utf-8",ИспользованиеByteOrderMark.НеИспользовать);
ххОтвет = ххСоединение.ОтправитьДляОбработки(ххЗапрос);
|
|
2
Игорь80
09.11.23
✎
14:22
|
Hmster, вы гений ) большое спасибо, всё взлетело. Я подходил к этому решению, но немного с другой стороны - пытался всё это впихнуть в одну строку, она, естественно, получалась очень длинной и вылетала с ошибкой. Делал так:
СтрокаBase64 = Base64Строка(ДвоичДанные);
СтрокаBase64 = КодироватьСтроку(СтрокаBase64, СпособКодированияСтроки.КодировкаURL);
Метод = "task.item.addfile?taskId=" + СокрЛП(СтрЗаменить(НомерУдаляемойЗадачи, " ", "")) + "&fields[Name]=" + ИмяФайлаВЗадаче +
"&fields[Content]=" + СтрокаBase64;
СтрокаЗапроса = "rest/" + ИД_Мой + "/" + _Идентификатор + "/" + Метод;
Соединение = Новый HTTPСоединение(АдресСайта,,,,,, Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос(СтрокаЗапроса);
Запрос.УстановитьТелоИзСтроки("");
Ответ = Соединение.Получить(Запрос);
Результат = Ответ.ПолучитьТелоКакСтроку()
А вот делать через джейсон - как-то не надоумился.
|
|