Записать двоичные данные из массива JSON
Здравствуйте .Пытаюсь с телеграмм загрузить аватарку пользователя.
Но на выходе получаю ошибку: Ошибка при вызове конструктора (ДвоичныеДанные): Фаил не обнаружен: 'AgADAgAD6qcxGwyaYxMulue7xCVvITMmrQ4ABKwFQfa_ML0d0qQBAAEC'
Подскажите, как правильно записать данные?
{
"ok": true,
"result": {
"total_count": 14,
"photos": [[{
"file_id": "AgADAgAD6qcxGwyaYxMulue7xCVvITMmrQ4ABKwFQfa_ML0d0qQBAAEC",
"file_size": 4367,
"width": 160,
"height": 160
},
{
"file_id": "AgADAgAD6qcxGwyaYxMulue7xCVvITMmrQ4ABBYsR-VFYPb806QBAAEC",
"file_size": 14094,
"width": 320,
"height": 320
},
{
"file_id": "AgADAgAD6qcxGwyaYxMulue7xCVvITMmrQ4ABOlO5fHuDpog1KQBAAEC",
"file_size": 47984,
"width": 640,
"height": 640
}]]
}
}
После чтения JSON получаю следующее:
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(СтрокаJSON);
СтруктураДанных = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
П = СтруктураДанных.result.photos.Получить(0).Получить(0).file_id;
(AgADAgAD6qcxGwyaYxMulue7xCVvITMmrQ4ABKwFQfa_ML0d0qQBAAEC)
Далее, пытаюсь загрузить в реквизит
Док = Документы.ПользователиТелеграмм.СоздатьДокумент();
МояКартинка = Новый ДвоичныеДанные(П);
ХранилищеКартинки = Новый ХранилищеЗначения(МояКартинка);
Док.Картинка = ХранилищеКартинки;
Док.Записать(РежимЗаписиДокумента.Проведение);
ПоказатьНо на выходе получаю ошибку: Ошибка при вызове конструктора (ДвоичныеДанные): Фаил не обнаружен: 'AgADAgAD6qcxGwyaYxMulue7xCVvITMmrQ4ABKwFQfa_ML0d0qQBAAEC'
Подскажите, как правильно записать данные?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Так получают двоичные данные из файла.
Тут нужно использовать ПолучитьДвоичныеДанныеИзСтроки
PS. хотя я не уверен, что это двоичные данные картинки. Судя по названию параметра, это уникальный идентификатор файла, по которому нужно отдельно получать содержимое этого файла (двоичные данные картинки).
МояКартинка = Новый ДвоичныеДанные(П);
Так получают двоичные данные из файла.
Тут нужно использовать ПолучитьДвоичныеДанныеИзСтроки
МояКартинка = ПолучитьДвоичныеДанныеИзСтроки(П);
PS. хотя я не уверен, что это двоичные данные картинки. Судя по названию параметра, это уникальный идентификатор файла, по которому нужно отдельно получать содержимое этого файла (двоичные данные картинки).
(2)
Дошел я все таки до получения картинки.
Таким образом я могу записать картинку:
ДвоичныеДанные = ОтветHTTP.ПолучитьТелоКакДвоичныеДанные();
ДвоичныеДанные.Записать("D:\1\1.jpg");
Подскажите, а как записать в хранилище значений?
Пробую вот так:
ВладелецФайла = Документы.Пользователи.НайтиПоНомеру("000000001");
Аватар = ВладелецФайла.ПолучитьОбъект();
МояКартинка = Новый ДвоичныеДанные(ДвоичныеДанные);
Аватар.Картинка = Новый ХранилищеЗначения(МояКартинка);
Аватар.Записать();
Не работает. Ошибка фаил не найден и выдает значения бинарного файла.
ПолучитьДвоичныеДанныеИзСтроки
Дошел я все таки до получения картинки.
Таким образом я могу записать картинку:
ДвоичныеДанные = ОтветHTTP.ПолучитьТелоКакДвоичныеДанные();
ДвоичныеДанные.Записать("D:\1\1.jpg");
Подскажите, а как записать в хранилище значений?
Пробую вот так:
ВладелецФайла = Документы.Пользователи.НайтиПоНомеру("000000001");
Аватар = ВладелецФайла.ПолучитьОбъект();
МояКартинка = Новый ДвоичныеДанные(ДвоичныеДанные);
Аватар.Картинка = Новый ХранилищеЗначения(МояКартинка);
Аватар.Записать();
Не работает. Ошибка фаил не найден и выдает значения бинарного файла.
Нашел хорошую статью на инфостарте: https://infostart.ru/1c/articles/1217332/
Раздел: Загрузка полученных файлов
Раздел: Загрузка полученных файлов
Нашел выход)
ДД = ОтветHTTP.ПолучитьТелоКакДвоичныеДанные();;
МояКартинка = ПоместитьВоВременноеХранилище(ДД, УникальныйИдентификатор);
ВладелецФайла = Документы.Пользователи.НайтиПоНомеру("000000001");
Аватар = ВладелецФайла.ПолучитьОбъект();
Аватар.Картинка = Новый ХранилищеЗначения (МояКартинка);
//Аватар.Картинка = Новый ХранилищеЗначения(МояКартинка);
//Аватар.Картинка = ПоместитьВоВременноеХранилище(МояКартинка);
Аватар.Записать();
Данные записались, но при открытии документа в поле картинки отображается крестик и если попытаться открыть, то пишет, что неизвестный формат.
ДД = ОтветHTTP.ПолучитьТелоКакДвоичныеДанные();;
МояКартинка = ПоместитьВоВременноеХранилище(ДД, УникальныйИдентификатор);
ВладелецФайла = Документы.Пользователи.НайтиПоНомеру("000000001");
Аватар = ВладелецФайла.ПолучитьОбъект();
Аватар.Картинка = Новый ХранилищеЗначения (МояКартинка);
//Аватар.Картинка = Новый ХранилищеЗначения(МояКартинка);
//Аватар.Картинка = ПоместитьВоВременноеХранилище(МояКартинка);
Аватар.Записать();
Данные записались, но при открытии документа в поле картинки отображается крестик и если попытаться открыть, то пишет, что неизвестный формат.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот