Вход | Регистрация
 

Подключить расширение для файлов в браузере ПодключитьРасширениеДляФайлов не работает?

Подключить расширение для файлов в браузере ПодключитьРасширениеДляФайлов не работает?
Я
   Гений 1С
 
26.05.21 - 18:34
Выдает "Подключить не удалось". Почему? В Chrome

&НаКлиенте
Процедура ПодключитьРасширениеДляФайлов(Команда)
    НачатьПодключениеРасширенияРаботыСФайлами(Новый ОписаниеОповещения("ПодключитьРасширениеДляФайловЗавершение", ЭтаФорма));
КонецПроцедуры

&НаКлиенте
Процедура ПодключитьРасширениеДляФайловЗавершение(Подключено, ДополнительныеПараметры) Экспорт
    Если Подключено Тогда
        ПоказатьПредупреждение(,"Подключено успешно!");
    Иначе
        ПоказатьПредупреждение(,"Подключить не удалось!");
    КонецЕсли;
КонецПроцедуры
 
 Партнерская программа EFSOL Oblako
   Asmody
 
1 - 26.05.21 - 21:46
   sikuda
 
2 - 27.05.21 - 09:00
Конкурс угадай автора по вопросу продолжается!
Хотя бы версию браузера написал бы...
   ДенисЧ
 
3 - 27.05.21 - 09:02
(2) Автора угадал, а версию бровзера не угадал? Слабо ещё прокачен, иди тренируйся...
   Гений 1С
 
4 - 31.05.21 - 12:35
(2) а какая разница?
(1) это несколько другое.

Итак вопросов два:
1. Как проверить, что веб-расширение для работы подключено? (Годится через попытку-исключение)
2. Не работает НачатьПомещениеФайлаНаСервер, НачатьПомещениеФайла в браузере.


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

НачатьПомещениеФайлаНаСервер - ругается на 5-й параметр.
НачатьПомещениеФайла - передает имя файла, а не временное хранилище файла.

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

Как это побороть?
   acht
 
5 - 31.05.21 - 12:50
   Гений 1С
 
6 - 31.05.21 - 14:44
(5) реклама на форуме запрещена, а-я-я-й
   acht
 
7 - 31.05.21 - 14:46
(6) Ты больше не будешь постить ссылочки на свою днявку? Печалька.
   Гений 1С
 
8 - 31.05.21 - 16:04
Загрузка файлов получилась, а вот как проверить, что расширение для работы с файлами подключено, хз.

&НаКлиенте
Процедура ЗагрузитьПравилаПолученияДанных(Команда)
    //https://wonderland.v8.1c.ru/blog/uluchshenie-raboty-s-faylami-v-veb-kliente/
    
    ОписаниеОповещения = Новый ОписаниеОповещения("ЗагрузитьПравилаПолученияДанныхЗавершение", ЭтаФорма);
    
    ПараметрыДиалога = Новый ПараметрыДиалогаПомещенияФайлов;
    ПараметрыДиалога.МножественныйВыбор = Ложь;
    //ПараметрыДиалога.Заголовок = НСтр("ru = 'Выберите файл'; en = 'Select file'");

       ПараметрыДиалога.Фильтр ="Файлы MXL (*.mxl)|*.mxl";

    НачатьПомещениеФайлаНаСервер(ОписаниеОповещения, , , , ПараметрыДиалога, ЭтаФОрма.УникальныйИдентификатор);

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

&НаКлиенте
Процедура ЗагрузитьПравилаПолученияДанныхЗавершение(ОписаниеПомещенногоФайла, ДополнительныеПараметры) Экспорт
    Если ОписаниеПомещенногоФайла = Неопределено Тогда
        Возврат;
    КонецЕсли;
    ДвоичныеДанныеФайлаПравилПолученияДанных = ПолучитьИзВременногоХранилища(ОписаниеПомещенногоФайла.Адрес);
КонецПроцедуры
   Гений 1С
 
9 - 31.05.21 - 16:05
Ошибка была не в том типе, использовал ПараметрыДиалогаПолученияФайлов а надо ПараметрыДиалогаПомещенияФайлов
   sikuda
 
10 - 31.05.21 - 16:52
(9) Ошибка была  - включать 1С расширение для файлов, если необходимо только передача выбранных файлов на сервер?
   Гений 1С
 
11 - 31.05.21 - 17:21
(10) расширение нужно, чтобы в браузере можно было сохранять имя файла, куда сохранять/откуда загружать. Чтобы было как в тонком клиенте.
   Гений 1С
 
12 - 31.05.21 - 18:13
Нашел в БСП в модуле РаботаСФайламиСлужебныйКлиент, но там как-то странно:

Функция РасширениеРаботыСФайламиПодключено() Экспорт
    Если КлиентПоддерживаетСинхронныеВызовы() Тогда
        Возврат ПодключитьРасширениеРаботыСФайлами();
    Иначе
        Возврат Ложь;
    КонецЕсли;
КонецФункции

Функция КлиентПоддерживаетСинхронныеВызовы()
    
#Если ВебКлиент Тогда

    // В Chrome и Firefox синхронные методы не поддерживаются.

    СистемнаяИнформация = Новый СистемнаяИнформация;
    ИнформацияПрограммыМассив = СтрРазделить(СистемнаяИнформация.ИнформацияПрограммыПросмотра, " ", Ложь);
    
    Для Каждого ИнформацияПрограммы Из ИнформацияПрограммыМассив Цикл
        Если СтрНайти(ИнформацияПрограммы, "Chrome") > 0 ИЛИ СтрНайти(ИнформацияПрограммы, "Firefox") > 0 Тогда
            Возврат Ложь;
        КонецЕсли;
    КонецЦикла;
#КонецЕсли

    
    Возврат Истина;
    
КонецФункции


Не очень понятно, как расширение и синхронные вызовы связаны между собой?
   acht
 
13 - 31.05.21 - 22:51
(12) Через архитектуру браузера, Геня.
   sikuda
 
14 - 31.05.21 - 23:37
(13) Нет через архитектуру 1С. ПодключитьРасширениеРаботыСФайлами() пытается подключить расширение работы с файлами синхронно(для старых движков браузеров). Для Chrome и Firefox применяется НачатьПодключениеРасширенияРаботыСФайлами
И да расширение нужно что бы наш "Гений" так и разобрался в разности архитектуры web и настольного приложения и мог писать одинаковый код для них.
Да в браузере нельзя напрямую из клиента обращаться к локальному диску и буферу обмена. Но 1С дает инструмент таким как Сергей и кладет на безопасность таких приложений. Это ее выбор.
   Гений 1С
 
15 - 01.06.21 - 07:46
(14) попробую НачатьПодключениеРасширенияРаботыСФайлами, а как проверить, что раширение подключено?

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.