Заметки из Зазеркалья

Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.

Реализовано в версии 8.3.13.1513.

Мы расширяем возможности работы с файлами в веб-клиенте. Мы реализовали перетаскивание файлов «извне» и увеличили возможности, доступные без установки специального расширения работы с файлами.

к содержанию ↑

Метод НачатьПомещениеФайлов() больше не требует расширения работы с файлами

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

Теперь мы «научили» метод НачатьПомещениеФайлов() работать и без расширения. При этом он использует новый «собственный» диалог выбора файлов, который позволяет выбирать сразу несколько файлов. Если расширение работы с файлами установлено, тогда используется диалог выбора файлов операционной системы.

к содержанию ↑

Новый диалог выбора файлов

Мы значительно изменили диалог выбора файлов в веб-клиенте.

001.png

Теперь он позволяет выбирать несколько файлов перетаскиванием.

002.png

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

003.png

к содержанию ↑

Настройка диалога выбора файла

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

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

Контроль характеристик загружаемых файлов

Теперь, прежде чем загружать файлы на сервер, вы можете проверить их характеристики, например, размер. Если размер превышает допустимые значения, вы можете отменить загрузку.

&НаКлиенте Процедура ВалидацияПередОтправкойФайла(Команда) ОбработкаОкончанияЗагрузки = Новый ОписаниеОповещения(«Обработчик_Завершения_Загрузки», ЭтотОбъект); ОбработкаНачалаЗагрузки = Новый ОписаниеОповещения(«Обработчик_Начала_Загрузки», ЭтотОбъект); НачатьПомещениеФайла(ОбработкаОкончанияЗагрузки, , , Истина, УникальныйИдентификатор, ОбработкаНачалаЗагрузки); КонецПроцедуры &НаКлиенте Процедура Обработчик_Начала_Загрузки(ПомещаемыйФайл, ОтказОтПомещенияФайла, ДополнительныеПараметры) Экспорт ОтказОтПомещенияФайла = Ложь; Если ПомещаемыйФайл.Размер() > 5 * 1024 * 1024 Тогда ПоказатьПредупреждение( , «Размер файла » + «(» + ПомещаемыйФайл.Размер() + «) » + ПомещаемыйФайл.Имя + » (» + ПомещаемыйФайл.ИдентификаторФайла + «) превышает 5MB. Загрузка остановлена.»); ОтказОтПомещенияФайла = Истина; КонецЕсли; КонецПроцедуры
к содержанию ↑

Перетаскивание файлов на картинку и на таблицу

Теперь можно перетаскивать файлы на картинку или таблицу. Таким образом, например, вместо выбора фотографии сотрудника с помощью проводника пользователь может просто перетащить нужный файл на поле картинки.

Открытие файлов перетаскиванием

Теперь можно открывать файлы, перетаскивая их в веб-клиент.

Файлы будут открываться в рабочей области веб-клиента.

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

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

Новости по теме:   Как понять, успешно ли проходит испытательный срок

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

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

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

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

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

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

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

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

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

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

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

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

Новости по теме:   Лишение водительских прав на 1,5 года: как рассчитать дату возврата ВУ и начало отсчета

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

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

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

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

Следующая
Трудовое правоОбязательные работы как вид уголовного наказания

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