Работа с файлами в 1С

Технологическая платформа 1С:Предприятие 8 позволяет сохранять в информационной базе произвольные файлы, получать их оттуда и использовать различными способами. Рассмотрим эти операции на примерах.

Перед выполнением загрузки файла в информационную базу 1С нужно получить полный адрес файла на диске. Работа с диалогами выбора файлов описана в отдельной статье.

Для хранения файлов используется реквизит (или ресурс регистра) с типом ХранилищеЗначения.

Загрузка произвольного файла в информационную базу 1С

Любой файл можно представить в виде двоичных данных и загрузить в ХранилищеЗначений.

При преобразовании двоичных данных в объект ХранилищеЗначения используется конструкция новый ХранилищеЗначения(Данные,Сжатие) с двумя параметрами:

  1. Данные — двоичные данные, которые нужно поместить в хранилище
  2. Сжатие — степень сжатия алгоритма Deflation. Целое число в диапазоне -1…9. -1 — степень сжатия по умолчанию. 0 — никакого сжатия, 9 — максимальная степень сжатия. Значение по умолчанию: -1. Параметр необязательный, если не указан, то сжатие не используется.

//В переменной Путь находится полный адрес файла на диске

//Преобразуем файл в двоичные данные
Файл = Новый ДвоичныеДанные(Путь);

//Создаем новый объект ХранилищеЗначения
//ХранилищеДанных - реквизит объекта с типом ХранилищеЗначения
ХранилищеДанных = Новый ХранилищеЗначения(Файл, Новый СжатиеДанных(9));

Сохранение произвольного файла из информационной базы 1С на диск

Для сохранения файла из базы 1С на диск нужно определить путь и имя файла. Для этого существует диалог сохранения файлов, работа с которым описана в отдельной статье.

//Получаем двоичные данные из хранилища
//ХранилищеДанных - реквизит объекта с типом ХранилищеЗначения
Данные=ХранилищеДанных.Получить();

//Записываем полученные данные на диск
//В переменной Путь находится полный адрес файла на диске
Данные.Записать(Путь);

Просмотр файла, находящегося в информационной базе 1С

Для просмотра сохраненного в базе файла необходимо, чтобы на компьютере было установлено приложение, открывающее данный файл.

//Получаем имя временного файла с необходимым расширением
//В переменную Расширение нужно поместить расширение файла, например "pdf"
Путь=ПолучитьИмяВременногоФайла(Расширение);

//Получаем данные из хранилища
//ХранилищеДанных - реквизит объекта с типом ХранилищеЗначения
Данные=ХранилищеДанных.Получить();

//Записываем данные во временный файл
Данные.Записать(Путь);

//Пытаемся открыть файл в предназначенном для него приложении
//Если приложение не найдено, появится системный диалог "Открыть с помощью..."
ЗапуститьПриложение(Путь);

 

 

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

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

3 + 11 =