Имя: Пароль:
1C
1С v8
Прикрепление файлов к документу
,
0 gash85
 
12.10.12
11:04
1С:Предприятие 8.2 (8.2.15.301) Управляемое приложение.

К каждому документу необходимо прикрепить от 1 до 5 скан-копий различных доков. Подскажите каким способом более грамотно решить эту задачу? Пока реализован процесс сохранения файла на сервере.

&НаКлиенте
Процедура ПрикрепитьФайл(Команда)
   Если Строка(Объект.ВидСкана) <> "" Тогда
       
       #Если ВебКлиент Тогда
           Если Не ПодключитьРасширениеРаботыСФайлами() Тогда
               
               УстановитьРасширениеРаботыСФайлами();
               
               ПодключитьРасширениеРаботыСФайлами();
               
           КонецЕсли;
       #КонецЕсли

       Режим = РежимДиалогаВыбораФайла.Открытие;
       ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
       ДиалогОткрытияФайла.ПолноеИмяФайла = "";
       ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
       ДиалогОткрытияФайла.Заголовок = "Выберите отчет";
       
       Если ДиалогОткрытияФайла.Выбрать() Тогда
           МояКартинка = Новый Файл(ДиалогОткрытияФайла.ПолноеИмяФайла);
           ДлинаПолн = СтрДлина(ДиалогОткрытияФайла.ПолноеИмяФайла);
           ДлинаКаталога = СтрДлина(ДиалогОткрытияФайла.Каталог);    
           НужнаяДлина = ДлинаПолн - ДлинаКаталога;
           ИмяФайла = Строка(Каталог+СокрЛП(Прав(ДиалогОткрытияФайла.ПолноеИмяФайла, НужнаяДлина)));            
           КопироватьФайл(ДиалогОткрытияФайла.ПолноеИмяФайла,ИмяФайла);
           Объект.ПутьКФайлу = ИмяФайла;
           Если Объект.ПутьКФайлу <> "" Тогда
               Объект.ЕстьФайл = Истина;
           КонецЕсли;    
       Иначе        
           Сообщить ("Файл не выбран!");        
       КонецЕсли;    
       
   Иначе
       Предупреждение("Сначала необходимо выбрать тип скан-копии");
   КонецЕсли;
КонецПроцедуры    

&НаКлиенте
Процедура ОткрытьФайл(Команда)
   Попытка
       #Если ВебКлиент Тогда
           Если Не ПодключитьРасширениеРаботыСФайлами() Тогда
               
               УстановитьРасширениеРаботыСФайлами();
               
               ПодключитьРасширениеРаботыСФайлами();
               
           КонецЕсли;
       #КонецЕсли

       ЗапуститьПриложение(Объект.ПутьКФайлу);
   Исключение
       Сообщить("Нет сохраненного файла.");
   КонецПопытки;
КонецПроцедуры

В принципе этот способ работает, кроме запуска веб-клиента. На веб-клиенте не открывает сохраненный файл. Объясните, в чем может быть дело. Ну и быть может всеже правильнее хранить эти файлы в самой базе, но смущает что их будет довольно таки много и не даст ли это большую нагрузку на базу?
1 GLazNik
 
12.10.12
11:04
БСП. Там все есть.
2 gash85
 
12.10.12
11:05
что такое БСП?
3 GLazNik
 
12.10.12
11:07
Библиотека стандартных подсистем.
4 Maxus43
 
12.10.12
11:13
да и в типовых всё есть
5 GLazNik
 
12.10.12
11:16
(4) собственно сейчас в типовых и используют БСП. Но из типовой это все еще выдернуть надо, а в БСП все документировано и описано. Что, куда и зачем.
6 gash85
 
12.10.12
11:20
ну а в целом как грамотнее реализовать задачу и почему может не открываться файл на веб-клиенте?
7 gash85
 
12.10.12
12:16
подскажите как реализовать хранение файлов в информационной базе? чтоб работало и с веб-клиента в том числе.
8 gash85
 
12.10.12
12:43
все еще крайне актуально..
9 Нуф-Нуф
 
14.10.12
15:33
Стоит подобный вопрос в рамках УТ 11. в ней реализовано приклепление файлов к справочникам, но к документам - нет. С чем связано хз. Расширение этого механизма до документов - правильный путь? и почему его изначально не было в таком виде?
10 Нуф-Нуф
 
14.10.12
15:58
чет затупил чуток. все нормально. для доков точно такой же механизм
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс