Имя: Пароль:
1C
1С v8
Мобильное и ПК приложение. Нужно компромисное решение.
0 antihacker
 
23.01.15
11:47
Ребята, вот код работает для ПК.

+ Code
&НаКлиенте
Процедура ПрикрепитьФайл(Команда)
Оповещение=Новый ОписаниеОповещения("ОбработатьВыборФайла",ЭтотОбъект);
//Вызываем Диалоговое окно и помещаем файл Картинки из локальной файловой системы во временное хранилище
НачатьПомещениеФайла(Оповещение, , , Истина, УникальныйИдентификатор);

ПоместитьФайл(Оповещение, , , Истина,УникальныйИдентификатор);
КонецПроцедуры
&НаСервере
Процедура ОбработатьВыборФайла(Резльтат,Адрес,ВыбранноеИмяФайла,ДополнительныйПараметры) Экспорт
    
    Если Не Резльтат Тогда
        Возврат;
    КонецЕсли;
    Строка=Объект.ТЧПрикрепленныеФайлы.Добавить();
    //----Имя файла----------------------
    ВыбранноеИмяФайла=СтрЗаменить(ВыбранноеИмяФайла,"\",Символы.ПС);
    Текстарь=Новый ТекстовыйДокумент;
    Текстарь.УстановитьТекст(ВыбранноеИмяФайла);
    Строка.ИмяФайла= Текстарь.ПолучитьСтроку(Текстарь.КоличествоСтрок());
    //---Адрес временного хранилища-----
    Строка.АдресФайла=Адрес;
    //---Сам файл------------------------
    //Строка.ПрикрепленныйФайл = Новый ХранилищеЗначения(Новый  ХранилищеЗначения(ПолучитьИзВременногоХранилища(Адрес)), Новый СжатиеДанных(9));
    //---Размер файла-------------------    
    Строка.Размерфайла=Цел((СтрДлина(Base64Строка(ПолучитьИзВременногоХранилища(Адрес)))*0.73)/1024);

КонецПроцедуры

Но не работает для мобильного устройства.
ПоместитьФайл использовать тоже не могу. Потому что Мозилла не возвращает полный путь к файлу.


Как быть ? Где компромисное решение ?
1 Cube
 
23.01.15
11:51
Справка:

Инструкции препроцессора
Инструкции препроцессора
Для указания разрешения использования процедур и функций общих модулей и модулей объектов используют инструкции препроцессора.
Синтаксис:

   #Если <Логическое выражение> Тогда
   #ИначеЕсли <Логическое выражение> Тогда
   …
   #Иначе
   #КонецЕсли

   где:
   <Логическое выражение> = [НЕ] <Символ препроцессора> [<Булева операция> [НЕ] <Символ препроцессора> [<Булева операция> [НЕ] <Символ препроцессора>]…]
   <Символ препроцессора> = {НаКлиенте | НаСервере | ТолстыйКлиентОбычноеПриложение | ТолстыйКлиентУправляемоеПриложение | Клиент | Сервер | ВнешнееСоединение }
   <Булева операция> = {И | ИЛИ}

Используемые термы:

   #Если (#If)
   #Тогда (#Then)
   #ИначеЕсли (#ElsIf)
   #Иначе (#Else)
   #КонецЕсли (#EndIf)
   #Область (#Region)
   #КонецОбласти (#EndRegion)
   Клиент (Client)
   НаКлиенте (AtClient)
   НаСервере (AtServer)
   МобильноеПриложениеКлиент (MobileAppClient)
   МобильноеПриложениеСервер (MobileAppServer)
   ТолстыйКлиентОбычноеПриложение(ThickClientOrdinaryApplication)
   ТолстыйКлиентУправляемоеПриложение (ThickClientManagedApplication)
   Сервер (Server)
   ВнешнееСоединение (ExternalConnection)
   ТонкийКлиент (ThinClient)
   ВебКлиент (WebClient)  
   И (AND)
   ИЛИ  (OR)
   НЕ (NOT)

Регистр букв (строчные или заглавные) при написании не имеет значения.
2 СуперГрид
 
23.01.15
11:51
На мобиле нет файловой системы
3 antihacker
 
23.01.15
13:14
СуперГрид , ты это кому ? Мне или Кубу ?
4 ilpar
 
23.01.15
13:30
При чем тут Мозилла и мобильное приложение?
5 ilpar
 
23.01.15
13:31
А веб-клиент - это вообще-то по-другому постановка вопроса.
6 ilpar
 
23.01.15
13:35
В общем синтаксический контроль говорит:

{Документ.Документ1.Форма.ФормаДокумента.Форма(20,20)}: Тип не определен (ТекстовыйДокумент)
    Текстарь=Новый <<?>>ТекстовыйДокумент; (Проверка: Мобильное приложение-сервер)
{Документ.Документ1.Форма.ФормаДокумента.Форма(6,1)}: Процедура или функция с указанным именем не определена (НачатьПомещениеФайла)
<<?>>НачатьПомещениеФайла(Оповещение, , , Истина, УникальныйИдентификатор); (Проверка: Мобильное приложение-клиент)
7 antihacker
 
23.01.15
14:24
ilpar, если на Пк будут использовать мозиллу то ПоместитьФайл не будет работать.

И у мяен такая же ошибка. Потому что назначения использования конфиги Персональный компьютер и мобильное приложение
8 DitriX
 
01.02.15
14:42
Так а в чем вопрос то?
Ты хочешь и на мобильном выбирать файл? Если да, но не проблема. В инете инфы валом на эту тему.