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

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

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

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


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

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

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

Как это побороть?
5 acht
 
31.05.21
12:50
(4) Вот здесь посмотри: https://uc1.1c.ru/course/programmirovanie-upravlyaemyh-form/
6 Гений 1С
 
гуру
31.05.21
14:44
(5) реклама на форуме запрещена, а-я-я-й
7 acht
 
31.05.21
14:46
(6) Ты больше не будешь постить ссылочки на свою днявку? Печалька.
8 Гений 1С
 
гуру
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";

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

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

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

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

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


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