Имя: Пароль:
1C
1С v8
копирование присоединенных файлов УНФ 1.6
0 Новый1сник2
 
03.04.22
09:53
Добрый день!
копирую файлы из общего документа в задачи сотруднику, файлы копируются но не открываются.
пишет ошибку:
Ошибка доступа к файлу: C:\Users\Пользователь\AppData\Roaming\1C\1cv8\307719d1-9281-4e12-bf12-5abf4b5ee377\b3469694-e80b-4634-afdf-be42ae0c3828\App\M\ДоговорПоставки.doc
подскажите как исправить ошибку.
1 Новый1сник2
 
03.04.22
09:54
РезультатПоПрикрепленнымФайлам = Запрос.Выполнить().Выбрать();

    Пока РезультатПоПрикрепленнымФайлам.Следующий() Цикл

        НоваяСтрокаСправочника = Справочники.ЗадачаСотрудникаПрисоединенныеФайлы.СоздатьЭлемент();
        ЗаполнитьЗначенияСвойств(НоваяСтрокаСправочника, РезультатПоПрикрепленнымФайлам);
        НоваяСтрокаСправочника.ВладелецФайла = Задача.ссылка;
                
        ДвоичныеДанные = РаботаСФайлами.ДвоичныеДанныеФайла(РезультатПоПрикрепленнымФайлам.Ссылка);
        
        НоваяСтрокаСправочника.ФайлХранилище =  Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9));
        НоваяСтрокаСправочника.Записать();
            
        МенеджерЗаписи = РегистрыСведений.ДвоичныеДанныеФайлов.СоздатьМенеджерЗаписи();
        МенеджерЗаписи.Файл = НоваяСтрокаСправочника.Ссылка;
        МенеджерЗаписи.ДвоичныеДанныеФайла = НоваяСтрокаСправочника.ФайлХранилище;
        МенеджерЗаписи.Записать();
        
    КонецЦикла;
2 vde69
 
03.04.22
09:54
не надо копировать, а надо сделать ссылку
3 vde69
 
03.04.22
09:56
ДвоичныеДанныеФайла - могут содержать как сами данные так и имя файла в томе хранения. Пишите универсальный код а не затычки, тогда поймете в чем дело (Вам придется пройти по типовым функциям создания)
4 Новый1сник2
 
03.04.22
10:00
файлы хранятся в базе
5 Новый1сник2
 
03.04.22
10:01
(2) задачу поставили копировать, если можно сделать ссылкой, подскажите как?
6 vde69
 
03.04.22
10:02
(4) это понятно, по существу я тебе уже все ответил.

Если не понятно - не надо пытаться хранить несколько копий одного и того-же вложения в базе.
7 Новый1сник2
 
03.04.22
10:05
(6) согласен, что несколько копий хранить смысла нет, подскажите код как сделать ссылкой.
8 vde69
 
03.04.22
10:05
(5) никогда не принимай буквально хотелки пользователей. Это на прямой путь к ковнокоду и проблеммам.

Для них "копия" - означает кнопочку по которой они смогут открыть файл.

А теперь представь себе, что файл в общем документе отредактируют, а юзер будет выполнять старую задачу...
9 Новый1сник2
 
03.04.22
10:07
(8) если документ отредактируют, это уже будет новая задача
10 vde69
 
03.04.22
10:09
(7) легко не выйдет, надо смотреть конкретно вашу реализацию в базе.

самый простой способ - сделать доп форму вложений которая будет открываться из задачи (и только из задачи) и в этой форме будут показыватся не только файлы задачи но и файлы документа по которому создана задача
11 Новый1сник2
 
03.04.22
10:13
(10) вариант с копированием тоже подходит, задач не много, и если будет две - три копии файла, это не страшно. тем более файлы в основном ворд, эксел. и для ознакомления а не редактирования
12 Новый1сник2
 
03.04.22
10:24
по коду подскажите где ошибка, обратился на форум потому что решение не гуглится или я не так искал
13 vde69
 
03.04.22
10:25
(12) по коду - не хватает одной строки, смены имени файла
14 Новый1сник2
 
03.04.22
10:27
(13) т.е просто переименовать файл ?
15 vde69
 
03.04.22
10:30
(14) да
16 Новый1сник2
 
03.04.22
10:37
(15) та же ошибка
17 Новый1сник2
 
03.04.22
11:03
коллеги, есть еще варианты как исправить ошибку ?
18 Новый1сник2
 
03.04.22
12:23
подниму
19 Новый1сник2
 
03.04.22
13:02
еще нюанс, из карточки файла, сохранить как дает, т.е сохраняет в указанную папку и потом вручную дает открыть.
при этом все равно пишет ошибку: Ошибка доступа к файлу
20 Новый1сник2
 
03.04.22
13:13
благодарю за участие, ошибку нашел
21 Новый1сник2
 
03.04.22
13:14
если интересно, ошибка была в дате изменения, по умолчанию заполнялось "01.01.0001 5:00:00",
исправил на дату создания.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший