Всем доброго времени суток. Столкнулся с проблемой - написал мобильный клиент к самописной конфигурации. Не могу выбрать файл на устройстве(андроид).
Получаю на телефоне ошибку после выбора файла :
Ошибка доступа к файлу '/storage/emulated/0/DCIM/Camera/202/10212_14101.jpg'
Ошибка при создании двоичных данных.
Подскажите куда копать)
#Если МобильныйКлиент Тогда
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Если Диалог.Выбрать() Тогда
БинДанные = Новый ДвоичныеДанные(Диалог.ПолноеИмяФайла);
АдресВременногоХранилища = ПоместитьВоВременноеХранилище(БинДанные, ЭтаФорма.УникальныйИдентификатор);
КонецЕсли;
#КонецЕсли
Получаю на телефоне ошибку после выбора файла :
Ошибка доступа к файлу '/storage/emulated/0/DCIM/Camera/202/10212_14101.jpg'
Ошибка при создании двоичных данных.
Подскажите куда копать)
По теме из базы знаний
- Мобильный клиент: установка, отладка, сборка под Android"
- Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия - Simple UI (обновлено 14.11.2019)
- Работа с файлами (обычная и управляемая форма)
- Мобильный клиент 1С
- Мобильный клиент в ритейле. Внедрение и первые результаты использования
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В конфигураторе включены все требования какие есть. В моем случае речь не о собранном apk моего приложения а о платформе для разработки установленной на телефон. Может в этом дело. Попробую собрать. На эмуляторе нет проблем. На телефоне разрешены для приложения 1с-камера и память.
у меня через ДиалогВыбораФайла работало но не давало получить расширение, в итоге сделал через допформу
ПутьКФайлу = ОткрытьФормуМодально("ОбщаяФорма.ВыбратьФайл", Новый Структура("ВыборКаталога", Ложь));
в этой форме заполняю дерево значений файлами и возвращаю имя выбранного файла, после чего Файл = Новый Файл(ПутьКФайлу); и вроде работает
ПутьКФайлу = ОткрытьФормуМодально("ОбщаяФорма.ВыбратьФайл", Новый Структура("ВыборКаталога", Ложь));
в этой форме заполняю дерево значений файлами и возвращаю имя выбранного файла, после чего Файл = Новый Файл(ПутьКФайлу); и вроде работает
так заработало
&НаКлиенте
Процедура ВыбратьФайлСДискаИЗаписать()
Перем ВыбранноеИмя;
Перем АдресВременногоХранилища;
Если ПоместитьФайл(АдресВременногоХранилища, "", ВыбранноеИмя, Истина) Тогда
Файл = Новый Файл(ВыбранноеИмя);
ПутьКФайлу = Файл.ПолноеИмя;
ПредставлениеФайла = Файл.ПолучитьПредставлениеФайлаБиблиотекиМобильногоУстройства();
ПоместитьФайлОбъекта(АдресВременногоХранилища, ПредставлениеФайла, ПутьКФайлу);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПоместитьФайлОбъекта(АдресВременногоХранилища, ИмяФайла, ПутьКФайлу)
ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресВременногоХранилища);
НовыйПрикрепленныйФайл = ДокументОбъект.ПрикрепленныеФайлы.Добавить();
НовыйПрикрепленныйФайл.ИмяФайла = ИмяФайла;
НовыйПрикрепленныйФайл.ПутьКФайлу = ПутьКФайлу;
НовыйПрикрепленныйФайл.ДанныеФайла = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных());
НовыйПрикрепленныйФайл.Подпись = Новый ХранилищеЗначения(Неопределено, Новый СжатиеДанных());
НовыйПрикрепленныйФайл.Зашифрован = Ложь;
НовыйПрикрепленныйФайл.Подписан = Ложь;
Модифицированность = Ложь;
УдалитьИзВременногоХранилища(АдресВременногоХранилища);
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот