Имя: Пароль:
1C
1С v8
Загрузка файлов в ИБ и сохранение на диск
0 just86
 
30.08.13
18:20
Приветствую коллеги!
Как пишет книжка загружаю файл:

&НаКлиенте
Процедура ЗагрузитьФайл(Команда)
    Перем ВыбранноеИмя,АдресВХранилище;
    
    Если ПоместитьФайл(АдресВХранилище, "", ВыбранноеИмя, Истина, УникальныйИдентификатор) Тогда
        Файл                              = Новый Файл(ВыбранноеИмя);
        ИмяФайла                          = Файл.Имя;
        СсылкаНаФайлВоВременномХранилище = АдресВХранилище;
        Модифицированность                  = Истина;
        СоздатьЭлементСправочникаХранениеФайлов(ИмяФайла);
        Элементы.ПрикрепленныеФайлы.Обновить();
    КонецЕсли;
    
    
КонецПроцедуры

Создаю элемент справочника и пишу в регистр

&НаСервере
Процедура СоздатьЭлементСправочникаХранениеФайлов(ИмяФайла)
    ДвоичныеДанные =ПолучитьИзВременногоХранилища(СсылкаНаФайлВоВременномХранилище);
    
    ЭлемСпр = Справочники.ХранениеФайлов.СоздатьЭлемент();
    ЭлемСпр.Наименование                      = ИмяФайла;
    ЭлемСпр.ИмяФайла                          = ИмяФайла;
    ЭлемСпр.Файл                             = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9));
    ЭлемСпр.Задача                             = Объект.Ссылка;
    ЭлемСпр.Записать();
    
    СсылкаНаФайл=ПолучитьНавигационнуюСсылку(ЭлемСпр.Ссылка,"Файл");
    ЭлемСпр.СсылкаНаФайлВоВременномХранилище =  СсылкаНаФайл;
    ЭлемСпр.Записать();
    
    
    МЗ = РегистрыСведений.СписокФалов.СоздатьМенеджерЗаписи();
    МЗ.Задача           = Объект.Ссылка;
    МЗ.Файл           = ЭлемСпр.Ссылка;  
    МЗ.ИмяФайла      = ИмяФайла;
    МЗ.СсылкаНаФайл = СсылкаНаФайл;
    
    МЗ.Записать(Истина);
КонецПроцедуры


Вроде все правильно. Потом пытаюсь сохранить то, что загрузил:

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




&НаСервереБезКонтекста
Функция ПолучитьТаблицуФайловНаСервере(Задача,УникальныйИдентификатор)
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    СписокФалов.ИмяФайла,
    |    СписокФалов.СсылкаНаФайл,
    |    СписокФалов.Файл.Ссылка КАК ФайлСсылка
    //|    СписокФалов.Файл Как ФайлСсылка
    |ИЗ
    |    РегистрСведений.СписокФалов КАК СписокФалов
    |ГДЕ
    |    СписокФалов.Задача = &Задача";
    Запрос.УстановитьПараметр("Задача", Задача);
    Результат = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    Массив = Новый Массив;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Структура = Новый Структура;
        Структура.Вставить("ИмяФайла",ВыборкаДетальныеЗаписи.ИмяФайла);
        СсылкаНаФайл = ПолучитьНавигационнуюСсылку(ВыборкаДетальныеЗаписи.ФайлСсылка,"Файл");
        Структура.Вставить("Ссылка",СсылкаНаФайл);
        Массив.Добавить(Структура);
    КонецЦикла;
    Возврат  Массив;
КонецФункции

И тут получаю ошибку:

{Документ.Задача.Форма.ФормаДокумента.Форма(161)}: Ошибка при вызове метода контекста (ПолучитьФайл)
                ПолучитьФайл(Стр.Ссылка,КаталогДляСохранения+Стр.ИмяФайла,Ложь);
по причине:
Неправильный путь к файлу 'e1c://filev/C/Documents and Settings/a.pupkin/Мои документы/InfoBase1/e1cib/data/Справочник.ХранениеФайлов.Файл?ref=a009000c2906aba311e311765e163578'

Подскажите, что с этим можно сделать и как собственно получить файл?
1 Охламон
 
30.08.13
18:23
Путь к файлу непраильный
2 just86
 
30.08.13
18:23
Путь, в смысле ссылка на файл?
3 giallo
 
30.08.13
18:25
(2) Путь - в смысле не железнодорожный, Млечный и тд, а путь к файлу
4 just86
 
30.08.13
18:28
(3) И каково должно быть исправление на путь истинный?
5 just86
 
30.08.13
18:30
Дело в имени файла - с какими то недопустимыми символами?
6 just86
 
30.08.13
18:54
Да. И так несколько тем с подобным содержанием...
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн