Имя: Пароль:
1C
1С v8
Программно присоединить файл к заказу УНФ 1.6
0 Новый1сник2
 
25.04.22
12:13
Добрый день!
программно создаю файл ПДФ, и присоединяю к заказу.
файл создается и открывается с диска. в список файлов заказа тоже добавляется, но не дает открыть из списка заказа.
пишет ошибку:

Не удалось открыть файл:
Счет на оплату Заказ покупателя 315 от 30.03.2022.PDF.PDF
который присоединен к:
Присоединен к Заказ покупателя : Заказ покупателя 315 от 30.03.2022
по причине: двоичные данные файла были удалены. Возможно, файл очищен как ненужный или удален антивирусной программой.
Обратитесь к администратору.
1 Новый1сник2
 
25.04.22
12:14
МассивСсылок = Параметры.ПараметрКоманды;
    Если ОбщегоНазначения.ЗначениеСсылочногоТипа(МассивСсылок) Тогда
        МассивСсылок = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(МассивСсылок);
    КонецЕсли;
    
    ИмяФайла = "C:\Temp\тест\" + ИмяТабдок + " " + СокрЛП(СтрЗаменить(МассивСсылок[0].Ссылка, "(не проведен)","")) + ".PDF";
    
    ТабДок.Записать(ИмяФайла,"PDF");
        
    мФайл = Новый ДвоичныеДанные(ИмяФайла);  
    ХранилищеФайла = Новый ХранилищеЗначения(мФайл);
    
    НоваяСтрокаСправочника = Справочники.ЗаказПокупателяПрисоединенныеФайлы.СоздатьЭлемент();
    
    НоваяСтрокаСправочника.Автор = ПараметрыСеанса.ТекущийПользователь;
    НоваяСтрокаСправочника.Редактирует = ПараметрыСеанса.ТекущийПользователь;
    НоваяСтрокаСправочника.ДатаЗаема = ТекущаяДата();    
    
    НоваяСтрокаСправочника.ДатаСоздания = ТекущаяДата();
    НоваяСтрокаСправочника.ВладелецФайла = МассивСсылок[0].Ссылка;
    НоваяСтрокаСправочника.Наименование = ИмяТабдок + " " + СокрЛП(СтрЗаменить(МассивСсылок[0].Ссылка, "(не проведен)","")) + ".PDF";
    НоваяСтрокаСправочника.Изменил = ПараметрыСеанса.ТекущийПользователь;
    НоваяСтрокаСправочника.ДатаМодификацииУниверсальная = ТекущаяДата();
    НоваяСтрокаСправочника.Расширение = "PDF";
    НоваяСтрокаСправочника.Размер = мФайл.Размер();
    //НоваяСтрокаСправочника.ФайлХранилище =  Новый ХранилищеЗначения(мФайл, Новый СжатиеДанных(9));
    НоваяСтрокаСправочника.ФайлХранилище = ХранилищеФайла;
    НоваяСтрокаСправочника.Записать();
    
    МенеджерЗаписи = РегистрыСведений.ДвоичныеДанныеФайлов.СоздатьМенеджерЗаписи();
    МенеджерЗаписи.Файл = НоваяСтрокаСправочника.Ссылка;
    МенеджерЗаписи.ДвоичныеДанныеФайла = НоваяСтрокаСправочника.ФайлХранилище;
    МенеджерЗаписи.Записать();
2 Новый1сник2
 
25.04.22
12:15
подскажите где ошибка в модуле?
3 Новый1сник2
 
25.04.22
12:31
подниму
4 Новый1сник2
 
25.04.22
13:20
коллеги выручайте, полдня уже этой задачкой занимаюсь
5 Новый1сник2
 
25.04.22
13:34
благодарю, разобрался сам
6 Dzenn
 
гуру
25.04.22
15:02
Для корректного присоединения файлов необходимо использовать процедуры/функции БСП, такие например, как РаботаСФайлами.ДобавитьФайл, но зависит от релиза
7 Новый1сник2
 
25.04.22
15:49
(6) БСП тоже юзаю по не многу, но чтобы не зависело от релиза, иногда проще свой код написать
8 Dzenn
 
гуру
25.04.22
15:53
(7) в твоём случае написать своё а) не проще б) неправильно
9 Новый1сник2
 
25.04.22
16:02
(8) задачка решена, смысл обсуждать, подсказки раньше нужны были
10 Новый1сник2
 
25.04.22
16:03
+ на счет проще / не проще, это индивидуально, кому как удобнее