|
хранение файлов во вне базы |
☑ |
0
dron4ikkk
03.07.14
✎
14:17
|
Всем привет! Кто знает, в какой конфе реализовано прикрепление и хранение файлов в каталогах ОС? хранение в базе 1с не предлагать.
|
|
1
anatoly
03.07.14
✎
14:18
|
не понятен смысл вопроса...
|
|
2
dron4ikkk
03.07.14
✎
14:20
|
(1) напиши название конфигурации где реализовано хранение файлов на диске операционной системы, т.е. файлы не хранятся в самой 1с в хранилище значений
|
|
3
Йохохо
03.07.14
✎
14:20
|
докумнтооборот
|
|
4
anatoly
03.07.14
✎
14:21
|
(2) зачем??
|
|
5
vlandev
03.07.14
✎
14:23
|
Емнип , этот функционал реализуется через БСП , и , соответственно , где прикручена БСП там оно должно быть.
|
|
6
dron4ikkk
04.07.14
✎
10:32
|
на клиенте написал:
Процедура Прикрепить_файл(Команда)
// Вызываем диалог выбора файла на диске
Режим = РежимДиалогаВыбораФайла.Открытие;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.Заголовок = "Выберите файл";
мойпуть="";
Если ДиалогОткрытияФайла.Выбрать() Тогда
ПутьКФайлу = ДиалогОткрытияФайла.ПолноеИмяФайла;
// Получаем имя файла (без пути к нему)
ПутьИИмя=ПутьКФайлу;
ПозСлэш = Найти(ПутьИИмя,"\");
Пока ПозСлэш > 0 Цикл
ПутьИИмя = Сред(ПутьИИмя,ПозСлэш+1);
ПозСлэш = Найти(ПутьИИмя,"\");
КонецЦикла;
Имя = ПутьИИмя;
Объект.ИмяФайла = КаталогВременныхФайлов()+Имя;
Иначе
Текст = "ru = ""Файл не выбран!""; en = ""File not selected!""";
Предупреждение(НСтр(Текст));
Возврат;
КонецЕсли;
// До этого вызов диалога выбора файла и установка расширения браузера
// Для веб-клиента
#Если НЕ ВебКлиент Тогда
// Получаем двоичные данные файла
ДвоичныеДанные = Новый ДвоичныеДанные(ПутьКФайлу);
// Передаем данные файла на сервер для записи в базу данных
ПрикрепитьФайлСервер(ДвоичныеДанные);
// Для тонкого клиента
#Иначе
#КонецЕсли
КонецПроцедуры
т.е. выбираем файл и вызываем серверную функцию:
Процедура ПрикрепитьФайлСервер(Данные, ЭтоВебКлиент = Ложь)
Об = РеквизитФормыВЗначение("Объект");
// Записываем двоичные данные в реквизит "Хранилище"
Об.Хранилище = Новый ХранилищеЗначения(Данные);
ФайлПутьНаДиске = Новый Файл(Об.ИмяФайла);
Об.ИмяФайла = ФайлПутьНаДиске.Имя;
Об.Записать();
Модифицированность = Ложь;
УдалитьФайлИзВременногоХранилища(АдресВременногоХранилища);
ЗначениеВРеквизитФормы(Об, "Объект");
КонецПроцедуры
проблема, не понимаю как теперь на сервер сохранить файл выбранный пользователем? Имя файла записал в реквизит, но что дальше?
|
|
7
dron4ikkk
04.07.14
✎
10:48
|
на сервере лучше расшарить папку для хранения там фото?
|
|
8
vlandev
04.07.14
✎
10:52
|
(7) В типовых требуется указывать шареную папку , типа \\SEEVR\FOLDER , но ничто не мешает записывать и в обычные папки.
|
|
9
Segate
04.07.14
✎
10:53
|
та хосспаде, напиши сам, там делов на 4 часа
|
|
10
dron4ikkk
04.07.14
✎
10:57
|
(8) а как синтаксически правильно написать?
использовать ПолучитьФайл()
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший