Как передать файл на сервер

Материал из VcVSoft wiki server
Перейти к: навигация, поиск

Как передать файл на сервер

В данной статье идет речь о клиент-серверном варианте работы 1С. Клиент 1С запущен на компьютере пользователя, а сервер 1С находится на другом компьютере. Для того, чтобы передать файл на сервер необходимо в модуле формы на клиенте вставить следующий код:

УправлениеСерверомВСВ.ПеренестиФайлНаСервер(Заголовок,Фильтр,ИмяПроцедуры,Модуль,ИдентификаторФормы)

Параметры:

  1. Заголовок - заголовок окна выбора файла,
  2. Фильтр - Фильтр, для имени файла см. документацию (Пр. "Файлы MS Excel (*.xls)|*.xls"),
  3. ИмяПроцедуры - cтрока с именем процедуры-обработчика которая будет вызвана при получениии файла. Данная процедура может располагаться в общем модуле, или в текущем, и должна иметь следующий набор параметров:
    1. Результат - Истина/Ложь, в зависимости от результата помещения файла,
    2. Адрес - адрес во временном хранилище
    3. НачальноеИмяФайла - Имя файла, которое было у файла до помещения,
    4. Имя - имя файла во временном каталоге
  1. Модуль - Общий модуль, или объект, из которого вызывается функция (обычно ЭтаФорма)
  2. ИдентификаторФормы - уникальный идентификатор формы, из которой вызвана функция

Пример процедуры-обработчика:

&НаСервере

Процедура ВыбратьСертификатКлиентаНаСервере(Результат,Адрес,НачальноеИмяФайла,Имя) Экспорт

Файл = УправлениеСерверомВСВ.ЗаписатьПолученныйФайлНаСервере(Результат,Адрес,НачальноеИмяФайла,Имя);
КонецПроцедуры

Функция УправлениеСерверомВСВ.ЗаписатьПолученныйФайлНаСервере извлекает файл из временного хранилища во временный каталог и возвращает объект типа Файл, соответствующий файлу во временном каталоге. Если необходимо поместить файл в базу данных 1С как двоичные данные, то достаточно сделать следующий вызов:


ДанныеХранилища = ПолучитьИзВременногоХранилища(Адрес);
Об.РеквизитСТипомХранилищеЗначения = Новый ХранилищеЗначения(ДанныеХранилища);


Пример:

&НаКлиенте
Процедура ВыбратьСертификатКлиентаНаКлиенте(Команда) Экспорт
УправлениеСерверомВСВ.ПеренестиФайлНаСервер("Выберите сертификат", "Файлы сертификатов(*.pem)|*.pem", "ВыбратьСертификатКлиентаНаСервере", ЭтаФорма, УникальныйИдентификатор);
КонецПроцедуры


&НаСервере

Процедура ВыбратьСертификатКлиентаНаСервере(Результат, Адрес, НачальноеИмяФайла, Имя) Экспорт

Файл = УправлениеСерверомВСВ.ЗаписатьПолученныйФайлНаСервере(Результат, Адрес, НачальноеИмяФайла, Имя);
КонецПроцедуры

Назад