Добавить файл к документу программно. Розница 2.3

Попытался поискать как это сделать, нашел тему на инфостарте и такой код:

ИмяВременногоФайла = ПолучитьИмяВременногоФайла("pdf");
ЛистСогласования.Записать(ИмяВременногоФайла, ТипФайлаТабличногоДокумента.PDF);
ДвоичныеДанные = Новый ДвоичныеДанные(ИмяВременногоФайла);
        
адресВХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
        
ПрисоединенныйФайл = ПрисоединенныеФайлы.ДобавитьФайл(ВладелецФайлов, "Лист согласования", "pdf", , , адресВХранилище);
УдалитьФайлы(ИмяВременногоФайла);

Но видимо, это не для розницы, 2.3, там нет модуля ПрисоединенныеФайлы.

У меня используется небольшое расширение с префиксом фдд, которое позволяет в рознице прикреплять файлы к нужному документу, путем создания папки под каждый документ, поэтому я еще вызываю определение папки файлов для файла. Без папки файлов файл не сохранится.

На клиенте определяю имя и расширение файла, сохраняю двоичные данные файла:

	Ф = Новый Файл(ВыбИмяФайла); 
	
	Если Ф.Существует() Тогда
		ДД = Новый ДвоичныеДанные(ВыбИмяФайла);           
		Расширение = Ф.Расширение; 
		Расширение = СтрЗаменить(Расширение, ".", "");
		ИмяБезРасширения = Ф.ИмяБезРасширения;
	Иначе
		ДД = Неопределено;       
		Расширение = Неопределено;
		ИмяБезРасширения = Неопределено;
	КонецЕсли;
	
	ПеренестиВДокументНаСервере(ДД, ИмяБезРасширения, Расширение); 
	

На сервере после записи документа вызываю прикрепление к нему файла:

	НовыйОбъект.Записать();
	Сообщить("Записан документ: " + НовыйОбъект);

	Если ДД <> Неопределено Тогда
		Попытка         
			ВладелецФайлов = Вычислить("фдд_Сервер.ДатьПапкуДокумента(ВыбДокумент)");
		Исключение
			ВладелецФайлов = Неопределено;
		КонецПопытки;                     
		
		//Должна быть определена папка файлов
		Если ВладелецФайлов <> Неопределено Тогда
			
			АдресВХранилище = ПоместитьВоВременноеХранилище(ДД);
			ПараметрыФайла = РаботаСФайлами.ПараметрыДобавленияФайла();
			ПараметрыФайла.ИмяБезРасширения = ИмяБезРасширения;
			ПараметрыФайла.РасширениеБезТочки = РасширениеБезТочки;
			ПараметрыФайла.ВладелецФайлов = ВладелецФайлов;
			СсылкаНаФайл = РаботаСФайлами.ДобавитьФайл(ПараметрыФайла,
			АдресВХранилище,
			"Файл загружен в документ при загрузке из Excel: "  + ТекущаяДата(),
			);
			Сообщить("  Файл документа загружен в файл: " + СсылкаНаФайл);
			
		КонецЕсли;
		
	КонецЕсли;

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *