Установка Расширения Работы с Файлами

Печать (Ctrl+P)

Работа с файлами на платформе 1С 8.3.

Работа в веб-клиенте имеет некоторые особенности. Эти отличия вызваны особенностями реализации веб-браузеров (отсутствие поддержки модальных окон, синхронных вызовов, особенности модели безопасности). Для работы с файлами и криптографией  в веб-клиенте требуется наличие специальных расширений, установленных в используемом веб-браузере. При использовании веб-браузера Google Chrome, перед установкой расширений платформы, необходимо выполнить установку расширения веб-браузера Расширение для работы с 1С:Предприятием, которое устанавливается из Интернет-магазина Chrome (при необходимости переход на страницу установки будет выполнен автоматически). Без установки этого расширения будет невозможно использование расширений платформы.

Расширение работы с файлами:

  • Установить расширение ‑ с помощью метода НачатьУстановкуРасширенияРаботыСФайлами() или УстановитьРасширениеРаботыСФайлами(). Это интерактивное действие, которое необходимо выполнить один раз для каждого пользователя локального компьютера, использующего расширение.
  • Подключить расширение ‑ с помощью метода НачатьПодключениеРасширенияРаботыСФайлами() или ПодключитьРасширениеРаботыСФайлами()

Если расширение работы с файлами не установлено при работе с файлами в веб-клиенте, будет выдано исключение с сообщением типа

Расширение по работе с файлами не подключено

В тонком клиенте , а также в режиме запуска “Мобильное приложение (клиент)” расширение всегда подключено

Программный код проверки и установки расширения работы с файлами зависит от свойства конфигурации  РежимИспользованияМодальности .

Если РежимИспользованияМодальности  установлено Использовать , то я использую следующий простой программный код :

&НаКлиенте
Процедура СинхронныйВызовПодключения(Команда)
#Если ВебКлиент Тогда
Результат = ПодключитьРасширениеРаботыСФайлами();
Результат = Ложь;
    //если подключить не удалось - требуется установить его (в первый раз)
    Если не Результат Тогда
        //устанавливаем
        УстановитьРасширениеРаботыСФайлами();
        //если не удалось установить - то повторный вызов подключения будет неудачный
        Если не ПодключитьРасширениеРаботыСФайлами() Тогда
            //сообщаем об ошибке и прерываем работу программы
            ВызватьИсключение "Не удалось подключить расширение работы с файлами!.Ваш браузер не поддерживает работу с файлами.";
        КонецЕсли;
    КонецЕсли;
#КонецЕсли
Состояние("Идет чтение файла. Ждите…."); 
ЗагрузитьДанныеИзфайла(); // Пользовательская служенная процедура 

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

Обратите внимание, что я проверяю только при запуск через браузер ( режим веб -клиента) потому, что в других режимах запуска функция ПодключитьРасширениеРаботыСФайлами() возвращает значение истина

Если РежимИспользованияМодальности  установлено в Не Использовать или Использовать с предупреждениями , следует использовать асинхронные асинхронные методы НачатьПодключениеРасширенияРаботыСФайлами и  НачатьУстановкуРасширенияРаботыСФайлами.

В этом случае программный код сложнее. Вот пример, который я использую в моих разработках :

&НаКлиенте
 Процедура АСинхронныйВызовПодключения(Команда)
 Подключить(Истина);
 КонецПроцедуры

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

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

Обратите внимание, что в этом программном коде при асинхронных вызовах я не использую инструкцию препроцессора:

#Если ВебКлиент Тогда 
#КонецЕсли

 Отметим, что начиная с версии 8.3.18 доступна асинхронная функция УстановитьРасширениеРаботыСФайламиАсинх() , которая устанавливает расширение работы с файлами. В режиме запуска толстого и тонкого клиентов информирует о том, что расширение установлено. Для клиента мобильного приложения, информирует о том, что расширение установлено.

Previous Article
Next Article

3 Replies to “Установка Расширения Работы с Файлами”

  1. Михаил

    Во втором варианте – ЗагрузитьДанныеИзфайла(); выдает ошибку процедура или функция не определена. Подскажите пожалуйста, как решить? В СП такой строчки нет, насколько я помню, вот вопрос как правильно реализовать?

  2. Буквоед

    Результат = ПодключитьРасширениеРаботыСФайлами();
    Результат = Ложь;

    Результат всегда будет ЛОЖЬ)))

  3. Денис

    Возникла с нашими пользователями проблема – в веб-клиенте прикрепляют в окно документа три разных файла, перед сохранением нажимают лупу, чтобы удостовериться, что они разные и верные сами по себе, но при сохранении их в базу берется случайный из этих трех файлов и записывается трижды под названиями остальных двух файлов, т.е. в базе в справочнике теперь имеется три разных наименования, но при открытии из 1С один и тот же файл .pdf. Это беда только у определенных пользователей. И расширение переустанавливали, и кешу чистили с куками и т.д.
    Платформа 8.3.22.1709

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.