Имя: Пароль:
1C
1С v8
МП, выбор картинки возвращает content://media/external, как получить файл?
, , ,
0 vladnet
 
30.05.22
13:10
На андроиде выбираю картинку, возвращает картинку типа: content://media/external/...
А мне нужно получить двоичные данные чтобы передать в основное приложение.

Как можно это сделать?
Объект ДвоичныеДанные хочет ссылку типа file://..
1 Aleksey
 
30.05.22
13:12
релиз последний? https://forum.infostart.ru/forum92/topic170966/
2 vladnet
 
30.05.22
13:15
(1) Достаточно новый: 8.3.16
Я ту ссылку конечно видел. Но проблема в том что там не понятно как ресолвить путь в релизе выше 10. А ставить ACODE только для этой единственной функции что то совсем не хочется.
3 Garykom
 
гуру
30.05.22
13:29
через httpсоединение уже пробовал дернуть?
4 vladnet
 
30.05.22
13:31
(3) А это как? Я двоичные данные получить не могу( Передать файл то без проблем.
5 Garykom
 
гуру
30.05.22
13:35
(4) у тебя есть uri
и ты не попробовал сделать HTTP GET?
6 vladnet
 
30.05.22
13:51
(5) Странно если сработает, но попробую.
7 Garykom
 
гуру
30.05.22
14:01
Еще попробовать КопироватьФайл() в темп
8 vladnet
 
30.05.22
16:05
(3) По моему нечего и пытаться, это же совсем про другое
(7) Не работает к сожалению.
9 ДНН
 
30.05.22
16:19
(8) КопироватьФайл должно работать. Первый параметр content://media/external/..., второй файл в любом временном каталоге. А потом из временного каталога создавай двоичные данные.
Если нужно получить имя файла как он называется в библиотеки, то:

ФайлОбъект = Новый Файл(ТутПутьСcontent);
ИмяФайла = ФайлОбъект.ПолучитьПредставлениеФайлаБиблиотекиМобильногоУстройства();
10 vladnet
 
30.05.22
18:05
(9) Сделал

        лФайл=Новый Файл(пИмяФайла);
        лИмяФайла2=лФайл.ПолучитьПредставлениеФайлаБиблиотекиМобильногоУстройства();
        Сообщить("!"+Символы.ПС+пИмяФайла+"!"+Символы.ПС+лИмяФайла+"!");
        
        лИмяФайла2=ПолучитьИмяВременногоФайла("jpg");
        КопироватьФайл(пИмяФайла, лИмяФайла2);

======================
лИмяФайла2 возвращает пустое значение.

На кпоироватьфайл выдает ошибку:

Файл не обнаружен 'content:\\media\external\images\media\591'

по причине:
Ошибка копирования файлов
по причине:
Файл не обнаружен 'content:\\media\external\images\media\591'
11 vladnet
 
31.05.22
10:46
up, проблема так и не решена ((
12 Garykom
 
гуру
31.05.22
10:54
(11) потому что кто то пипипи

ибо у тебя в (10) нубский говнокод

лИмяФайла2=лФайл.ПолучитьПредставлениеФайлаБиблиотекиМобильногоУстройства();
Сообщить("!"+Символы.ПС+пИмяФайла+"!"+Символы.ПС+лИмяФайла+"!");


лИмяФайла != лИмяФайла2
13 vladnet
 
31.05.22
12:28
(12) это я когда сюда копировал изменил, мой косяк.
На самом деле код такой:

        лФайл=Новый Файл(пИмяФайла);
        лИмяФайла=лФайл.ПолучитьПредставлениеФайлаБиблиотекиМобильногоУстройства();
        Сообщить("!"+Символы.ПС+пИмяФайла+"!"+Символы.ПС+лИмяФайла+"!");

При этом лИмяФайла пустое. Запуск идет через платформу на андроиде. Возможно проблема в том что андроид 11, там что то добавляли с безопасностью файлов.
14 vladnet
 
31.05.22
12:30
Попробую новую платформу МП скачать. Может она решит проблему.
15 Garykom
 
гуру
31.05.22
12:36
в МП 1С косяков достаточно много, особенно на устаревших или сильно новых версиях
16 ДедМорроз
 
01.06.22
00:04
Насколько я помню,как раз двоичные данные из ссылки типа content должны создаваться.
НачатьСозданиеДвоичныхДанных какую ошибку возвращает ?
17 vladnet
 
07.06.22
18:35
(16) возвращает файл не найден  content://media/external/...
18 ДедМорроз
 
07.06.22
18:55
А файл точно есть?
Просто,бывает так,что мини-ихображение есть и оно выбирается,а самого файла уже нету.
19 ДедМорроз
 
07.06.22
18:56
Ну и права на доступ к хранилищу контента должны быть,если их нету,то нету и файлов.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан