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