Хранение двоичных данных
Реквизиты, которые вы добавляете элементам проекта, могут быть предназначены для хранения двоичных данных: файлов документо в, изображений, видео и т. д. Такие реквизиты имеют тип ДвоичныйОбъект.Ссылка
.
Особенность двоичных данных заключается в том, что они, как правило, имеют большой размер, что может влиять на производительность приложения. По этой причине «1С:Исполнитель» не хранит двоичные данные в тех же таблицах базы данных, что и остальные реквизиты. Для хранения двоичных данных «Исполнитель» использует специальные хранилища, которые должны быть заранее настроены администратором сервера. Непосредственно в реквизите хранится только ссылка на двоичные данные в этих хранилищах.
Хранилища двоичных данных
Сервер поддерживает два типа хранилищ:
- Файловое — данные хранятся в локальном или сетевом каталоге на диске;
- S3 — данные хранятся в сервисе, совместимом с Amazon S3, например:
- Yandex Object Storage;
- VK Cloud Solutions Storage;
- MinIO — локальный S3-сервер.
Сервер для каждого приложения стандартно создает одно локальное файловое хранилище двоичных данных. Для оптимизации ресурсов можно добавлять к серверу дополнительные хранилища и подключать их к приложениям.
Чтобы облегчить просмотр всех хранилищ, в списке Инфраструктура ⟶ Объектные хранилища все стандартные файловые хранилища, созданные «1С:Исполнителем» для каждого приложения, отображаются в виде одн ой обобщенной строки.
Правила использования хранилища и свойства данных
Администратор для каждого хранилища описывает набор правил. Разработчик в своих алгоритмах загрузки двоичных данных задает свойства загружаемых данных. «1С:Исполнитель» помещает двоичные данные в то хранилище, правилам которого удовлетворяют свойства двоичных данных (подробнее).
В процессе эксплуатации сервера администратор может менять набор хранилищ, может изменять их правила. После этого он может выполнить реорганизацию двоичных данных (вручную или по расписанию), при которой «Исполнитель» заново сопоставит свойства данных и правила хранилищ и переместит экземпляры двоичных данных в оптимальные хранилища.
Установка свойств двоичных данных
На сервере вы можете установить свойства двоичных данных непосредственно перед их загрузкой в хранилище. Например:
знч ВременныеФайлы = новый ДвоичныйОбъект.Свойства("temp")
.Временные()
знч РезервныеКопии = новый ДвоичныйОбъект.Свойства("backup")
.РедкийДоступ()
.Конфиденциальность(ДвоичныйОбъект.Конфиденциальность.Конфиденциальный)
.НадежностьХранилища(ДвоичныйОбъект.НадежностьХранилища.Средняя)
На клиенте перед загрузкой в хранилище установка свойств двоичных данных невозможна. Но после того, как данные загружены, вы можете перейти на сервер и изменить свойства уже загруженных данных.
Например, в переменной ДанныеСсылка вы имеете ссылку на загруженные двоичные данные (ДвоичныйОбъект.Ссылка
):
знч ВременныеФайлы = новый ДвоичныйОбъект.Свойства("temp").Временные()
ДвоичныйОбъект.УстановитьСвойства(ДанныеСсылка, ВременныеФайлы)
Когда администратор сервера выполнит реорганизацию двоичных данных, ваши данные попадут в оптимальное хранилище.
Дедупликация двоичных данных
Для более эффективного расхода памяти в хранилищах двоичных данных «Исполнитель» обеспечивает дедупликацию двоичных данных: при загрузке экземпляра вычисляется его хеш-сумма, и если экземпляр с такой хеш-суммой уже есть в хранилище, то он будет задействован повторно.