Защищенное хранилище файлов на базе WEB сервисов 1С 8.3


Реализовано защищенное хранилище конфиденциальных файлов на базе WEB сервисов 1С 8.3.

Реализовано защищенное хранилище конфиденциальных файлов на базе WEB сервисов 1С 8.3.

Получение файлов организовано с локального каталога сервера. Путь файла задается для локального расположения на сервере.

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

Скачанный файл копируется во временный каталог пользователя.

Пример кода процедуры:

Процедура ПолучитьФайлЧерезWS(Путь)
// Создать WS-прокси на основании ссылки и выполнить операцию Получить()
Определение = Новый WSОпределения("http://srv1s/file/ws/ws_file.1cws?wsdl");

Прокси = Новый WSПрокси(Определение, "http://localhost/request", "GetFile", "GetFileSoap");

Настройки = НОВЫЙ Структура;
Настройки.Вставить("Пользователь",ПараметрыСеанса.Пользователь.Наименование);
Настройки.Вставить("Файл",Путь);
Настройки.Вставить("Компьютер",ИмяКомпьютера());
Настройки.Вставить("Объект",""+ДокументОбъект.Наименование+" ("+ДокументОбъект.Код+")");

ОбъектВстроку_Передача = ЗначениеВСтрокуВнутр(Настройки);

ДанныеЗаявки = Прокси.GetFile(ОбъектВстроку_Передача);
Если ДанныеЗаявки = Неопределено Тогда
Возврат;
КонецЕсли;

Путь_Ответ = ДанныеЗаявки.Link;
Ответ = ДанныеЗаявки.Response;
Размер = ДанныеЗаявки.Size;

//проверим каталог пользователя
КаталогНаДиске = Новый Файл(КаталогПользователя);
Если НЕ КаталогНаДиске.Существует() Тогда
СоздатьКаталог(КаталогНаДиске.ПолноеИмя);
КонецЕсли;


Если Не Размер=0 Тогда
ФайлДвоичныеДанные  = ДанныеЗаявки.Body;
Попытка
ФайлДвоичныеДанные.Записать(КаталогПользователя+""+Путь_Ответ);
Исключение; КонецПопытки;
//Сообщить("Файл записан: "+КаталогВременныхФайлов()+Объект.Путь_Ответ);
КонецЕсли;

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

2 Comments

  1. asved.ru

    На файле размером больше 4Гб проверяли?

    Reply
  2. solarstrike

    Нет не проверяли у меня другое счастливое число. Почему 4Гб? А не 8Гб скажем.

    Reply

Leave a Comment

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