Данные в хранилище значений



Обработка, показывающая размер, занимаемый данными типа Хранилище значения.

Обработка, которая когда-то была заброшена на стадии позднего бета-тестирования. То есть выполняет основное предназначение, но не дошлифована в некоторых моментах (в основном в выводе результатов на СКД). Планов дорабатывать нет, поэтому если кто-нибудь доработает и выложит на данном ресурсе — на здоровье.

 

Обработка находит пользовательские данные, которые хранятся в виде хранилища значений. Так как хранилище значения может иметь достаточно большой объем, то даже один элемент справочника может в базе данных занимать очень много места.

Если база данных серверная, то оптимальнее и быстрее размер данных смотреть в базе SQL-сервера (или где там у вас хранится база). В нормальном случае человек мало-мальски разбирающийся в sql-запросах должен сделать это быстро.

Так как нет вариантов средствами 1с сделать запрос с получением размеров данных расположенных в Хранилище значений, то обработка последовательно перебирает объекты, извлекает данные из хранилища значений и вычисляет размер. Если данных много, то процесс может занять длительное время. В подобном случае прерывание процесса стандартное Ctrl+Break. После этого можно выполнять обработку данных порционно — по видам документов, справочников и т.д.

Акцентирую внимание — теоретически отчет может использовать любой пользователь, однако необходимы полны права при его работе, так как отчет смотрит практически все пользовательские объекты в базе данных.

 

На форме предварительного просмотра формируется список видов пользовательских объектов у которых хотя бы один реквизит имеет тип ХранилищеЗначений. В скобках приводится информация о количестве объектов данного вида. При установке галочки "Не выводить имеющие ноль элементов" виды объектов при отсутствии данных не будут выведены в таблицу.

Выделив необходимые виды объектов или даже только некоторые реквизиты в видах объектов, можно запустить отчет на расчет данных и вывод их в форму СКД. 

В чем прелесть СКД — богатые возможности по работе с данными (отбор, сортировка и прочее). Кроме того, результаты можно сохранить в приемлемом формате (все поддерживаемые форматы 1с).

 

Отчет разрабатывался на платформе 8.2.19.130

При создании статьи небольшая проверка (ну и скриншоты) были выполнены на платформе 8.3.8.1675

 

ПРИМЕЧАНИЯ.

Так как отчет был полем изучения некоторых возможностей 1с8 и, в частности, СКД там наворочено следующее (что помню).

1. Это внешний отчет и нем есть возможность открыть одновременно несколько форм с результатами. Насколько помню в стандартном случае это невозможно, поэтому пришлось делать часть вывода программно.

2. На ресурсе есть отчет с выводом аналогичных данных. В отличии от него данный отчет проверяет также табличные части.

3. Отчет считает объем которые занимает ХранилищеЗначений в базе. И даже если значение равно Неопределено, то в базе данных это занимает место.

Некоторые аспекты программирования в 1С умышленно освещаются в стиле "для дилетантов", и если при этом не обладает любознательностью и стремлением расширить кругозор, то возникают ненужные темы "как гадать по звездам в 1С" :D 

Предлагаю Вам прочитать про https://ru.wikipedia.org/wiki/BLOB 
Различные типы данных резервируют под себя различные размеры. В этом смысле даже пустые строки с данными формата BLOB резервируют гораздо больше места чем простые типы.

(Источник http://www.gilev.ru/forum/viewtopic.php?f=18&t=876)

4. Подсчет размера с помощью ДанныеBase64 = Base64Строка(ДанныеХранилища) решил не применять, так как получаем сбой если в хранилище лежат не двоичные данные, картинка или строка (например в константе лежит Структура).

5. Вывод в СКД кривоват. Наглядно видно для констант.

6. Есть наброски хелпера, но не доделано и часть хелпера не актуальна.

Leave a Comment

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