Размер хранилища значений 1с

Проверка размера данных в хранилищах значений

Обработка проверяет все реквизиты справочников, документов, констант и регистров (бизнес процессы пока нет).

Выводит в таблицу все реквизиты, где есть хранилища значений, и выводит их размеры.

Сделана в связи с тем, что 1С может иногда вылетать, когда очень большие объемы хранятся в хранилищах.

Позволяет подсчитать объемы.

Выдает все реквизиты, у которых тип – хранилище значений:

Выдает те объекты, у которых хранятся значения в хранилище, с указанием размера:

Любые данные в 1С можно получить в виде строкового представления с помощью функции ЗначениеВСтрокуВнутр.
Выполним данную функцию с объектом ХранилищеЗначения:

Функция возвращает строку вида:

Обладая данными можем рассчитать кол-во байтов помещенных в эти данные:

Т.к. формат base64 имеет ограничение — общая длина строки, состоящая из 4-х символьных стрингов составляет 72 символа (за исключением самой последней строки — там уже сколько получится), то нужно из общего числа символов отнять число символов перевода строки (Символ(13)+Символ(10)). Это действие выполняет выражение 2*(СтрЧислоСтрок(ДанныеBase64)-1). Во второй строчке учитываем случай, когда на завершение остаются один или два байта.

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

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

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

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

Читайте также  Расположение фотографий в коллаже

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

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

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

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

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

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

Ссылка на основную публикацию
Adblock
detector