Перед выполнением загрузки файла в 1С нужно получить полный адрес файла на диске.
Для хранения файлов используется реквизит ( ресурс регистра) с типом ХранилищеЗначения или регистр сведений ДвоичныеДанныеФайла.
Загрузка произвольного файла в информационную базу 1С
Любой файл можно представить в виде двоичных данных и загрузить в ХранилищеЗначений.
При преобразовании двоичных данных в объект ХранилищеЗначения используется конструкция новый ХранилищеЗначения(Данные,Сжатие) с двумя параметрами:
- Данные — двоичные данные, которые нужно поместить в хранилище
- Сжатие — степень сжатия алгоритма Deflation. Целое число в диапазоне -1…9. -1 — степень сжатия по умолчанию. 0 — никакого сжатия, 9 — максимальная степень сжатия. Значение по умолчанию: -1. Параметр необязательный, если не указан, то сжатие не используется.
//В переменной КаталогДокументации находится полный адрес файла на диске //Преобразуем файл в двоичные данные Файл = Новый ДвоичныеДанные(КаталогДокументации); //Создаем новый объект ХранилищеЗначения //ХранилищеДанных - реквизит объекта с типом ХранилищеЗначения ХранилищеДанных = Новый ХранилищеЗначения(Файл, Новый СжатиеДанных(9));
Сохранение произвольного файла из информационной базы 1С на диск без диалога
Для сохранения файла из базы 1С на диск нужно определить путь и имя файла.
//Получаем двоичные данные из хранилища //ХранилищеДанных - реквизит объекта с типом ХранилищеЗначенияЭ например, ЭлектронноеПисьмоВходящееПрисоединенныеФайлы.ФайлХранилище Данные = ЭлектронноеПисьмоВходящееПрисоединенныеФайлы.ФайлХранилище.Получить(); //Записываем полученные данные на диск //В переменной КаталогДокументации находится полный адрес файла на диске Данные.Записать(КаталогДокументации);
Просмотр файла, находящегося в информационной базе 1С
Для просмотра сохраненного в базе файла необходимо, чтобы на компьютере было установлено приложение, открывающее данный файл.
//Получаем имя временного файла с необходимым расширением //В переменную Расширение нужно поместить расширение файла, например "pdf" ИмяВременногоФайла = ПолучитьИмяВременногоФайла(Расширение); //Получаем данные из хранилища //ХранилищеДанных - реквизит объекта с типом ХранилищеЗначения Данные = ХранилищеДанных.Получить(); //Записываем данные во временный файл Данные.Записать(ИмяВременногоФайла); //Пытаемся открыть файл в предназначенном для него приложении по умолчанию. //Если приложение не найдено, появится системный диалог "Открыть с помощью..." ЗапуститьПриложение(ИмяВременногоФайла);