1с где можно хранить двоичные данные
Перейти к содержимому

1с где можно хранить двоичные данные

  • автор:

Хранилище двоичных данных

В версии 8.3.22 в платформе появится новый механизм – хранилище двоичных данных.
Этот механизм предназначен для хранения больших двоичных (Binary Large Objects, BLOB) не в базе данных, а в специализированном хранилище.

Решаемая задача

Часто задачи информационных баз включают в себя не только хранение и обработку интерактивно вносимых данных, но и требуют связки с различными прилагаемыми файлами (сканами документов, фотографиями, аудио- и видеозаписями и т.п.). Например, в 1С:Документообороте к создаваемому договору необходимо приложить скан бумажной версии.
Хранение больших двоичных данных в СУБД влечет ряд проблем, в частности:

  • Двоичные данные хранятся в используемой СУБД вместе с остальной информацией, при этом работа с этими данными конкурирует вместе с остальными операциями в базе данных, что может приводить к высокой нагрузке на аппаратные мощности и, возможно, к падению производительности системы.
  • Хранение больших двоичных данных в СУБД ведет к росту объёма базы, что, в свою очередь, вызывает сложности в эксплуатации самой системы:
    • Проблемы с бэкапом и восстановлением БД.
    • Проблемы с масштабированием системы.
    • Увеличенные сроки обновления и обслуживания БД (долгая дефрагментация и реструктуризация).

    img-01.png

    Использование механизма

    img-02.png

    В стандартных обработках (доступных из пункта меню «Функции для технического специалиста») появится обработка «Управление хранилищем двоичных данных». В этой обработке можно включить и настроить новый механизм.

    У конфигурации, начиная с режима совместимости 8.3.10, появится свойство “Использование хранилища двоичных данных”. При установке этого свойства в «Использовать» все реквизиты типа ХранилищеЗначений, чей размер больше указанного в настройках, будут сохранены в хранилище двоичных данных (при условии, что использование хранилища двоичных данных включено и у хранилища не установлен режим «Только чтение»).
    Включение хранилища двоичных данных для конкретной информационной базы приведет к тому, что часть данных будет храниться как и раньше в СУБД, а часть — в специальном каталоге кластера серверов 1С:Предприятие. Поэтому рекомендуется выполнять резервное копирование и базы данных, и «Хранилища двоичных данных».
    Механизм хранилища двоичных данных доступен только в клиент-серверном варианте работы.
    Использование хранилища двоичных данных абсолютно прозрачно для разработчиков и конечных пользователей; не надо задумываться над тем, используется хранилище или нет, и не надо ничего модифицировать в конфигурации.
    Сейчас использовать механизм хранилища двоичных данных могут только участники программы бета-тестирования. Чтобы стать участником программы бета-тестирования нажмите зелёную кнопку «Пробовать» в начале статьи.

    1с где можно хранить двоичные данные

    Хранилище значений — это тип, который появился в 8.0, позволяющий сохранять прямо в базе различные данные, включая двоичные данные (произвольные файлы). Например, так можно хранить в базе данных JPG-картинки, Word-документы и т.д. Причем данные будут храниться в самой базе (файле 1CD или в таблицах на SQL-сервере) и будут включены в штатную выгрузку базы или резервную копию средствами SQL Server.

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

    В хранилище значение можно сохранить почти любую информацию, например,

    . произвольные файлы (двоичные данные):

    Восьмерка поддерживает сжатие данных, помещаемых в хранилище:

    . внешние обработки и отчеты :

    Если это были ДвоичныеДанные, то их можно восстановить из хранилища значения методом Получить и записать в файл методом Записать().

    Если это был, например, Word-документ (doc-файл, или другой файл зарегистрированного типа), то его можно открыть так:

    Чтобы очистить поле типа Хранилище значения, нужно присвоить ему Неопределено:

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

    К сожалению, 1С не содержит встроенных методов для проверки того, заполнено хранилище или нет.
    Такой вариант не работает:

    Сохранение и восстановление данных в Хранилище значений.

    Хранилище значений — это тип, который появился в 8-ой версии 1С позволяющий сохранять прямо в базе различные данные, включая двоичные данные (произвольные файлы). Например, так можно хранить в базе данных JPG-картинки, Word-документы и т.д. Причем данные будут храниться в самой базе (файле 1CD или в таблицах на SQL-сервере) и будут включены в штатную выгрузку базы или резервную копию средствами SQL Server.

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

    Восьмерка поддерживает сжатие данных, помещаемых в хранилище:

    Если это были ДвоичныеДанные, то их можно восстановить из хранилища значения методом Получить и записать в файл методом Записать().

    Если это был, например, Word-документ (doc-файл, или другой файл зарегистрированного типа), то его можно открыть так:

    Чтобы очистить поле типа Хранилище значения, нужно присвоить ему Неопределено:
    Код 1C v 8.х

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

    К сожалению, 1С не содержит встроенных методов для проверки того, заполнено хранилище или нет.
    Такой вариант не работает:
    Код 1C v 8.х

    Работает только такой вариант:
    Код 1C v 8.х

    Но он требует затрат времени на извлечение данных из хранилища.
    Поэтому, если это критично, нужно заводить еще один флаг, который указывает, содержит ли хранилище значение.

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

Ваш адрес email не будет опубликован.