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