Имя: Пароль:
1C
1С v8
ИмяФайла - в мобильной платформе, напомните , как получил - можно прочитать ?
0 Tatitutu
 
10.03.23
00:14
ТаблДок = Новый ТабличныйДокумент;
ТаблДок.Прочитать(ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);


из документации :


ТабличныйДокумент (SpreadsheetDocument)
Прочитать (Read)
Вариант синтаксиса: Из файла
Синтаксис:
Прочитать(<ИмяФайла>, <СпособЧтенияЗначений>)
Параметры:
<ИмяФайла> (обязательный)
Тип: Строка.
Имя файла табличного документа.
<СпособЧтенияЗначений> (необязательный)
Тип: СпособЧтенияЗначенийТабличногоДокумента.
Определяет, каким образом нужно интерпретировать значения, считываемые из исходного документа XLS, XLSX или ODS.
При загрузке табличного документа из формата Excel 97 - 2010 и OpenOffice Calc, в случае если в ячейке исходного документа содержалось значение типа Дата или Число, то в ячейку результирующего табличного документа это значение попадает в зависимости от значения этого параметра.
Значение по умолчанию: Текст.
Описание варианта метода:
Чтение табличного документа из файла.
Вариант синтаксиса: Из потока
Синтаксис:
Прочитать(<Поток>, <СпособЧтенияЗначений>, <ТипФайлаТаблицы>)
Параметры:
<Поток> (обязательный)
Тип: Поток, ПотокВПамяти, ФайловыйПоток.
Поток для чтения табличного документа.
<СпособЧтенияЗначений> (необязательный)
Тип: СпособЧтенияЗначенийТабличногоДокумента.
Определяет, каким образом нужно интерпретировать значения, считываемые из исходного документа XLS, XLSX или ODS.
При загрузке табличного документа из формата Excel 97 - 2010 и OpenOffice Calc, в случае если в ячейке исходного документа содержалось значение типа Дата или Число, то в ячейку результирующего табличного документа это значение попадает в зависимости от значения этого параметра.
Значение по умолчанию: Текст.
<ТипФайлаТаблицы> (необязательный)
Тип: ТипФайлаТабличногоДокумента.
Формат, в котором табличный документ хранится в потоке.
При чтении табличного документа из потока допустимы следующие форматы: MXL, ODS.
Значение по умолчанию: MXL.
Описание варианта метода:
Чтение табличного документа из потока.
При чтении из потока допускается использование только следующих форматов: MXL, MXL7, ODS.
Описание:
Считывает табличный документ из файла.
Позволяет считывать табличный документ из файла табличного документа Microsoft Excel 97 - 2010 ( *.xls и *.xlsx) или электронной таблицы OpenOffice Calc ( *.ods).
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер).
Пример:
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать("C:\My Documents\Таблица1.mxl");




Какое имя файла "подсунуть" в мобильной платформы - раньше знал, но забыл )))
уже все перебробовал и интернет молчит


найти файл, получить файл,узнать имя файла, скопировать файл,  открыть в приложении (через Запустить приложение), распечатать файл, сохранить файл - без ПРОБЛЕМ!

а как ПРОЧИАТЬ !!!!


вот сильно очень не нужно, но для красоты картичны чуть чуть не хватает, а завтра уже улетать...
Знаю, чувстую , что можно и как то просто, а не доходит чуть чуть...

Помогите, подскажите - кто знает, и благодарности не будет краев !
Выживу лично на .... (тут нельзя) "много много не молока будем не смотреть"
1 Tatitutu
 
10.03.23
00:15
ПРОЧИАТЬ= ПРОЧИТАТЬ - уже глазки устали и ничего не видят, вся надежда на вас - коллективный разум
2 p-soft
 
10.03.23
01:09
файл каким способом получаешь?
чтобы не решать вопрос, что доступно приложению, я либо из потока читаю, либо использую метод КаталогВременныхФайлов(), пихаю туда полученное, потом обрабатываю.
3 Tatitutu
 
10.03.23
10:44
да уже все что можно перепробовал
на компьютере все открывается и работает

на телефоне - нет


Ошибка при вызове метода контекста (Прочитать)

по причине:
Ошибка при выполнении файловой операции




&НаКлиенте
Асинх Процедура ОткрытьФайлТест(Команда)
    
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выбери файл";
    
    Результат = Ждать Диалог.ВыбратьАсинх();

    Если Результат <> Неопределено И Результат.Количество() > 0 Тогда
        
                
        БинДанные = Новый ДвоичныеДанные(Результат[0]);  
        
        АдресВременногоХранилища = ПоместитьВоВременноеХранилище(
        БинДанные, ЭтаФорма.УникальныйИдентификатор);  
                
        ОткрытьНаСервере(АдресВременногоХранилища);
                
    КонецЕсли;

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




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

КонецПроцедуры
4 Tatitutu
 
10.03.23
11:13
&НаСервере
Процедура ОткрытьНаСервере(АдресВременногоХранилища,ФИО)
    
    ДД = ПолучитьИзВременногоХранилища(АдресВременногоХранилища);
        ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xls");
    ДД.Записать(ИмяВременногоФайла);
  
    ЗапуститьПриложение(ИмяВременногоФайла); //все отлично открывает

КонецПроцедуры
5 p-soft
 
10.03.23
11:24
рабочий код, кусок работает с архивом:

ВременныйКаталог = ВременныйКаталогВыгрузки("");
        
        ЧтениеZipФайла = Новый ЧтениеZipФайла(Данные.ОткрытьПотокДляЧтения());
        Элемент = ЧтениеZipФайла.Элементы[0];
        ЧтениеZipФайла.Извлечь(Элемент, ВременныйКаталог);
        
        Результат = ПрочитатьДанныеXML(Новый ДвоичныеДанные(ПолучитьПолноеИмяФайла(ВременныйКаталог, Элемент.Имя)));
        УдалитьФайлы(ВременныйКаталог);


Функция ВременныйКаталогВыгрузки(Имя) Экспорт
    
    Если НЕ ЗначениеЗаполнено(Имя) Тогда
        Имя = XMLСтрока(Новый УникальныйИдентификатор);
    КонецЕсли;
    
    ВременныйКаталог = ПолучитьПолноеИмяФайла(КаталогВременныхФайлов(), XMLСтрока(Имя));
    
    СоздатьКаталог(ВременныйКаталог);
    
    Возврат ВременныйКаталог;
КонецФункции

Функция ПолучитьПолноеИмяФайла(Знач ИмяКаталога, Знач ИмяФайла) Экспорт

    Если НЕ ПустаяСтрока(ИмяФайла) Тогда
        Слэш = "";
        Если (Прав(ИмяКаталога, 1) <> "\") И (Прав(ИмяКаталога, 1) <> "/") Тогда
            Слэш = ?(СтрНайти(ИмяКаталога, "\") = 0, "/", "\");
        КонецЕсли;
        
        Возврат ИмяКаталога + Слэш + ИмяФайла;
    Иначе
        Возврат ИмяКаталога;
    КонецЕсли;
КонецФункции
6 Tatitutu
 
10.03.23
12:05
спасибо, но не помогло
и каталог создает
и файл в него сохраняет

ЗапуститьПриложение(каталог+файл) успешно открывает

но ПРОЧИТАТЬ - не хочет

Ошибка при вызове метода контекста (Прочитать)

как то по другому можно EXCEL прочитать  на мобильной платформе ?
7 p-soft
 
10.03.23
12:10
а mxl читает? может мобилка не поддерживает это добро? хотя в справке нет примечаний..
8 Tatitutu
 
10.03.23
12:14
(7) где же ты раньше то был ??? )))
спасибо , MXL прочитало в лет !!! моментально считало
9 Tatitutu
 
10.03.23
12:17
xls и xlsx не читает моб.платформа 8.3.21.26
10 p-soft
 
10.03.23
12:18
(8) ну извини если что не так)
вообще, мобильную платформу пишут хорошие, жизнерадостные люди)
11 Tatitutu
 
10.03.23
12:24
моб.платформа 8.3.22.53 обновил
тоже не работает пока !
а это все от лени.... понимаю, что можно - но не хочет
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший