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

11.01.2019

Унификация методов работы с файлами

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

Планируется в версии 8.3.15.

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

Предыстория

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

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

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

Унификация

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

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

Новые методы позволяют вам получить с сервера или поместить на сервер один, либо несколько файлов. При этом они могут использовать интерактивный диалог, а могут работать и без диалога. Для настройки интерактивного диалога мы сделали новые типы ПараметрыДиалогаПолученияФайлов и ПараметрыДиалогаПомещенияФайлов.

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

Кроме этого новые методы принесли с собой и новую функциональность. Так, например, методы, помещающие один или несколько файлов на сервер, позволяют вам подключить собственный обработчик прогресса загрузки файлов. А метод НачатьПолучениеФайловССервера() позволяет вам получать файлы в виде архива. Для этого мы создали новый тип ПараметрыПолученияАрхиваФайлов. С его помощью вы можете задать имя архива и режим его получения.

В результате во встроенном языке теперь есть четыре рекомендуемых асинхронных метода для работы с файлами:

    Помещение на сервер   Получение с сервера
  Один файл    НачатьПомещениеФайлаНаСервер()    НачатьПолучениеФайлаССервера() 
  Несколько
файлов 
  НачатьПомещениеФайловНаСервер()    НачатьПолучениеФайловССервера() 

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

Несмотря на это мы рекомендуем вам исправить, со временем, старые конфигурации, и перевести их на использование новых методов, чтобы ваши конфигурации соответствовали современной методике актуальной платформы.

Рассказать друзьям: