Хранилище значений 1С

Также на эту тему:
Типы 1С и значения 1С
Типы 1С
Описание типов 1С

Дополнительные материалы:
Электронная книга "Язык 1С. Том 1"

ХранилищеЗначения (хранилище значений 1С) – это объект в языке 1С, который позволяет хранить в базе данных прочие значения, например картинки и файлы, структуры и таблицы значений.



Сначала мы создаем значение, например:
Знч = Новый ТаблицаЗначений();

Потом помещаем его в хранилище значений 1С:
Хранилище = Новый ХранилищеЗначения(Знч, Новый СжатиеДанных(9));

Сжатие данных в хранилище значений 1С с параметром «9» означает, что данные будут храниться в архивированном виде, с максимальной степенью сжатия.

Чтобы сохранить такое значение в базу данных, нужно создать объект конфигурации (справочник, документ и т.п.), у которого добавить реквизит с типом ХранилищеЗначения.
СправочникСсылка = Справочники.Хранилище.СоздатьЭлемент();
СправочникСсылка.ХранилищеЗначения = Хранилище;
СправочникСсылка.Записать();

Кроме хранения таких значений в базе данных, с помощью хранилища значений 1С, мы также можем сохранить такое значение в файл, например:
Настройки = Новый Структура();
Настройки.Вставить("ПоУмолчанию", Истина);
Настройки.Вставить("Наименование", "Наименование1");

Хранилище = Новый ХранилищеЗначения(Настройки, Новый СжатиеДанных(9));
ЗначениеВФайл("C:\", Хранилище);


Пример – сохранение значения из файла
//Значение - картинка из файла
Файл = Новый Картинка("C:\ФайлКартинки.jpg");
Хранилище = Новый ХранилищеЗначения(Файл, Новый СжатиеДанных(9));

//Значение - произвольный файл
Файл = Новый ДвоичныеДанные("C:\ИсполняемыйФайл.exe");
Хранилище = Новый ХранилищеЗначения(Файл, Новый СжатиеДанных(9));

//Значение - текстовый файл
Файл = Новый ЧтениеТекста("C:\ТекстовыйФайл.txt");
ТекстовыеДанные = Файл.Прочитать();
Хранилище = Новый ХранилищеЗначения(ТекстовыеДанные, Новый СжатиеДанных(9));

Значение, помещенное в хранилище значений 1С нельзя использовать, пока оно там находится. Чтобы работать с ним, его нужно «распаковать» обратно, например:
Знч = Хранилище.Получить();
Если Знч = Неопределено Тогда
Сообщить("Ошибка получения значения из хранилища");
КонецЕсли;




Проголосовать за этот пост:

1 Star2 Stars3 Stars4 Stars5 Stars (11 голосов, среднее: 4,64 из 5)
Loading ... Loading ...

Также на эту тему:
Типы 1С и значения 1С
Типы 1С
Описание типов 1С

Дополнительные материалы:
Электронная книга "Язык 1С. Том 1"

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