Пример, как обойтись без расширения работы с файлами в веб клиенте 8.2

Меня достало, что в веб клиенте расширение работы с файлами задает много вопросов типа "Загрузить файл?" или "Удалить файл?". Долго искать альтернативу не пришлось.

Качайте обработку. Все должно быть понятно.

Принцип следующий:

Двоичные данные из макета кодируются в строку Base64. Затем кодируются обратно в формат понятный ADODB.Stream, с помощью которого и сохраняются на диск.

Удаление файла происходит средствами FileSystemObject.

 

Необходимые условия:

  • Браузер только Interrnet Explorer
  • Адрес веб сервера необходимо добавить в список надежных узлов
  • В параметрах безопасности надежных узлов разрешить «Доступ к источникам данных за пределами домена/Access data sources across domains» и «Использование элементов ActiveX, не помеченных как безопасные/Initialize and script ActiveX not marked as safe«
  • Согласиться, если браузер предложит установить компонент «Microsoft Script Control» 

Скачивая файл, Вы подтверждаете, что согласны получать информационные сообщения об этой программе.

Скачать «РаботаСФайлами.epf»

Размер: 8.08 kb
Доступ: Пользователи


+1

Поставьте плюс, если вы рекомендуете данную разработку к использованию.


См. также:
Мои разработки
Мои статьи

Отблагодарить меня:

 Отправить 100 WMR (R342458610221)

5 Comments

  1. artbear

    Хорошо, но допущения уж слишком сильные 🙂

    Reply
  2. Armando

    (1) Согласен. Возможно кто-то пойдет на такие жертвы. Для облегчения жизни можно сварганить reg файл с настройками.

    Reply
  3. madvik

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

    Столкнулись с проблемой, из-за которой не можем использовать стандартное расширение работы с файлами…

    Reply
  4. Steelvan

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

    ФайлЗагр = Новый Файл(Файл);

    Если ФайлЗагр.Существует() = Ложь Тогда

    ТекстСообщения = НСтр(«ru = ‘Файла %Файл% не существует!'»);

    ТекстСообщения = СтрЗаменить(ТекстСообщения, «%Файл%», Файл);

    УправлениеНебольшойФирмойСервер.СообщитьОбОшибке(, ТекстСообщения);

    Возврат Неопределено;

    КонецЕсли;

    #КонецЕсли

    ПотокЧтения = Новый ТекстовыйДокумент();

    Попытка

    Если Объект.Кодировка = «DOS» Тогда

    Кодир = КодировкаТекста.OEM;

    Иначе

    Кодир = КодировкаТекста.ANSI;

    Конецесли;

    ПотокЧтения.Прочитать(Файл, Кодир);

    Исключение

    ТекстСообщения = НСтр(«ru = ‘Файл не прочитан.'»);

    УправлениеНебольшойФирмойСервер.СообщитьОбОшибке(, ТекстСообщения);

    Возврат Неопределено;

    КонецПопытки;

    Если ПотокЧтения.КоличествоСтрок() < 1 Тогда

    ТекстСообщения = НСтр(«ru = ‘В файл нет данных!'»);

    УправлениеНебольшойФирмойСервер.СообщитьОбОшибке(, ТекстСообщения);

    Возврат Неопределено;

    КонецЕсли;

    Если СокрЛП(ПотокЧтения.ПолучитьСтроку(1)) <> «1CClientBankExchange» Тогда

    ТекстСообщения = НСтр(«ru = ‘Указанный файл не является файлом обмена или неверно указана кодировка!'»);

    УправлениеНебольшойФирмойСервер.СообщитьОбОшибке(, ТекстСообщения);

    Возврат Неопределено;

    КонецЕсли;

    Возврат ПотокЧтения.ПолучитьТекст();

    Reply
  5. opolyakova

    платформу поновее, и закомментить код. у меня работает..

    Reply

Leave a Comment

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