Добрый день, при получении файла в НовыйОтвет при КодСостояние = 200 файл добавляется в документ, но данные файла некорректные (
https://iimg.su/i/RruDrj ) пробовал получить ПолучитьТелоКакДвоичныеДанные() из ответа, но тогда уходит в ошибку.Я еще не особо понимаю работу с файлом и его двоичными данными, читал документацию, вроде все корректно, по одному из способов получения. За основу взял старую процедуру добавления файла и переписал под новые функции запроса битрикса чтобы получить файл из чата.
Загруженный файл в чат весит 82кб, а при получении 50кб
https://iimg.su/i/tHZBFa
Процедура ПолучитьФайлИзЗадачиНовый(ЗадачаСсылка, ЗадачаКод, Соединение, Вложения)
Если Вложения = Неопределено Тогда
Возврат;
КонецЕсли;
Если ЗадачаСсылка.БизнесПроцесс.Предметы.Количество() = 0 Тогда
Возврат;
КонецЕсли;
ВладелецФайла = ЗадачаСсылка.БизнесПроцесс.Предметы[0].Предмет;
Если Не (ТипЗнч(ВладелецФайла) = Тип("СправочникСсылка.ВнутренниеДокументы")
Или ТипЗнч(ВладелецФайла) = Тип("СправочникСсылка.ВходящиеДокументы")
Или ТипЗнч(ВладелецФайла) = Тип("СправочникСсылка.ИсходящиеДокументы")) Тогда
ВладелецФайла = ЗадачаСсылка.БизнесПроцесс;
КонецЕсли;
Для Каждого Вложение Из Вложения Цикл
Если ТипЗнч(Вложение) = Тип("Соответствие") Тогда
ВложенныйФайл = Новый Структура;
ВложенныйФайл.Вставить("ФайлКод", Вложение.Получить("id"));
ВложенныйФайл.Вставить("ФайлИмя", Вложение.Получить("name"));
ВложенныйФайл.Вставить("ФайлСсылка", Вложение.Получить("urlDownload"));
КонецЕсли;
ПутьДляСохранения = КаталогВременныхФайлов() + ВложенныйФайл.ФайлИмя;
Ответ = Соединение.Получить(ВложенныйФайл.ФайлСсылка, ПутьДляСохранения);
Если Ответ.Кодсостояния = 302 Тогда
URI = ОбщегоНазначенияКлиентСервер.СтруктураURI(Ответ.Заголовки.Получить("Location"));
SSL = Новый ЗащищенноеСоединениеOpenSSL();
Соединение = Новый HTTPсоединение(URI.Хост, URI.Порт,,,,, SSL);
Запрос = Новый HTTPЗапрос(URI.ПутьНаСервере);
НовыйОтвет = Соединение.Получить(Запрос, ПутьДляСохранения);
КонецЕсли;
Если Ответ.Кодсостояния = 200 Или НовыйОтвет.Кодсостояния = 200 Тогда
ВременныйФайл = Новый Файл(ПутьДляСохранения);
Если ВременныйФайл.Существует() Тогда
ДвоичныеДанные = Новый ДвоичныеДанные(ПутьДляСохранения);
СведенияОФайле = РаботаСФайламиКлиентСервер.СведенияОФайле("ФайлСВерсией", ВременныйФайл);
СведенияОФайле.АдресВременногоХранилищаФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
Файл = РаботаСФайламиВызовСервера.СоздатьФайлСВерсией(ВладелецФайла, СведенияОФайле);
СоздатьЗаписьПоФайлу(ЗадачаСсылка, ЗадачаКод, Файл, ВложенныйФайл.ФайлКод);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура СоздатьЗаписьПоФайлу(ЗадачаСсылка, ЗадачаКод, Файл, ФайлКод)
Запись = РегистрыСведений.BitrixAPI_Файлы.СоздатьМенеджерЗаписи();
Запись.ЗадачаИсполнителя = ЗадачаСсылка;
Запись.Файл = Файл;
Запись.Код = ФайлКод;
Запись.ЗадачаКод = ЗадачаКод;
Запись.Записать(Истина);
КонецПроцедуры