Имя: Пароль:
1C
1С v8
МобильныйКлиент передача файла на сервер.
0 Spartak13
 
17.06.26
15:32
Самописная конфигурация. Есть мобильный клиент. Нужно загрузить файл на сервер с телефона. Есть такой код:

&НаСервере
Функция ЗагрузитьФайлыНаСервере(Знач Адрес,Знач Расширение) Экспорт
    СтруктураХранения = РаботаСФайлами.ПолучитьСтруктуруВХранилище();
    Если СтруктураХранения.ПолноеИмя = "" Тогда
        Сообщить("Не настроено хранилище");
        Возврат "";
    КонецЕсли;
    ИмяФайлаСохранения = СтруктураХранения.ПолноеИмя + Расширение;
    ФайлВременногоХранилища = ПолучитьИзВременногоХранилища(Адрес);
    ФайлВременногоХранилища.Записать(ИмяФайлаСохранения);
    УдалитьИзВременногоХранилища(Адрес);
    Файл = Новый Файл(ИмяФайлаСохранения);
    Если Файл.Существует() Тогда
        Возврат СтруктураХранения.ИмяФайла + Расширение;
    Иначе
        Сообщить("Ошибка при сохранении файла на сервере.");
        Возврат "";
    КонецЕсли;
    
КонецФункции

&НаКлиенте
Процедура ВыполнитьЗагрузку(Результат,Адрес,ПомещаемыйФайл,СтрокаДанных)  Экспорт
    Если НЕ Результат Тогда
        Возврат;
    КонецЕсли;
    Файл = Новый Файл(ПомещаемыйФайл);
    СтрокаДанных.ИмяФайла           = Файл.Имя;
    СтрокаДанных.ИмяФайлаВХранилище = ЗагрузитьФайлыНаСервере(Адрес,Файл.Расширение);
    Если СтрокаДанных.ИмяФайлаВХранилище <> "" Тогда
        СтрокаДанных.ЕстьОбъект = Истина;
    КонецЕсли;
    
КонецПроцедуры

&НаКлиенте
Процедура Добавить_ЗагрузитьФайл(Команда)
    
    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
    Попытка
        ДиалогОткрытияФайла.Заголовок = "Выберите файл";
    Исключение
        Возврат;
    КонецПопытки;
    
    ЭтаФорма.Элементы.Файлы.ДобавитьСтроку();
    ПроцедураОбработки = Новый ОписаниеОповещения ("ВыполнитьЗагрузку",ЭтаФорма,Элементы.Файлы.ТекущиеДанные);
    НачатьПомещениеФайла(ПроцедураОбработки,,ДиалогОткрытияФайла,Истина,УникальныйИдентификатор);
    
    
КонецПроцедуры

На мобильном клиенте не работает при выборе файла, ссылка на файл вида content://media/external/images/media/20 и на сервер файл не передается. Подскажите куда копать. Платформа 8,3,5???
1 Tatitutu
 
17.06.26
15:53
ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    #Если МобильноеПриложениеКлиент Тогда        
        ВыборФайла.Каталог = КаталогБиблиотекиМобильногоУстройства(ПредопределенноеЗначение("ТипКаталогаБиблиотекиМобильногоУстройства.Картинки"));
    #КонецЕсли
    
    Если ВыборФайла.Выбрать() Тогда      
        
        ВыбранноеФото  = Новый Картинка(ВыборФайла.ПолноеИмяФайла,Ложь);             
        ТекущееФото    = ВыбранноеФото.ПолучитьДвоичныеДанные();                
        СсылкаНаЛого   = ПоместитьВоВременноеХранилище(ТекущееФото, Новый УникальныйИдентификатор);
    Иначе            
        СсылкаНаЛого="";            
    КонецЕсли;      

возврат СсылкаНаЛого;
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой