Отчет получает размеры таблиц с помощью метода глобального контекста ПолучитьРазмерДанныхБазыДанных(). В документации сказано, что с помощью данного метода могут быть получены все данные, которые доступны пользователю для чтения, метод не учитывает размер истории данных и служебных таблиц платформы (индексы и т.д.). В справке так же сказано, что метод не учитывает размер расширений конфигурации, не совсем понятно что имеется ввиду под расширениями конфигураций, т.к. проверка на платформе 8.3.20.1710 показала, что метод успешно возвращает размеры всех таблиц, всех подключенных расширений. Возможно, в первых версиях, этот метод действительно не мог получить размеры таблиц расширений, а в справке так и осталось это примечание, не смотря на то, что метод нормально работает с таблицами расширений. Недостаток метода в том, что он работает довольно медленно и нельзя получить размер служебных таблиц. Но есть и большой плюс – метод работает не зависимо от используемой СУБД, в том числе и с файловыми базами. Данный метод доступен только начиная с платформы версии 8.3.15.1489. Если платформа ниже, то отчет вернет только количество записей в таблице. Несмотря на то, что получить можно размер только основных таблиц, этого вполне достаточно, чтобы проанализировать и найти какая таблица «распухла».
Подобные разработки уже есть на Infostart, но они либо не на СКД, либо имеют др. недостатки. Данный же отчет выполнен на СКД, что позволяет «вертеть» данные как угодно, на свое усмотрение. Так же данный отчет позволяет выбрать только нужные менеджеры объектов для анализа, что может существенно сэкономить время, и изначально имеет 3 готовых варианта:
- Основной – с группировкой по менеджерам объектов и сортировкой по размеру таблиц по убыванию, что бы сразу было видно самые большие таблицы в каждом менеджере объектов.
- Краткий – просмотр общего размера каждого менеджера объектов с диаграммой;
- Линейный – просмотр всех таблиц одним списком, отсортированных по размеру, на случай если нужно сразу просмотреть топ самых больших таблиц без группировки по менеджерам;
Колонки размера можно настроить в разных единицах измерения - байтах, Кб, Мб, Гб и авто единица измерения (отчет сам поймет какую лучше показать в зависимости от размера). Отчет не имеет формы, так что нормально будет отображаться как в обычном приложении, так в управляемом. Но при просмотре отчета в обычном приложении механизмы платформы не позволяют переключать вариант отчета интерактивно, так что можете выбрать нужный вариант в конфигураторе или сделать свой вариант отчета или свой механизм интерактивного переключения вариантов. В управляемых форма проблем с настройками СКД никаких нет, особенно если у вас конфигурация на базе БСП.
Тестировалось на платформах 8.3.17.1549 и 8.3.20.1674, на файловых и серверных базах, самописных конфигурациях и ЗУП 3.1. Работать отчет должен на любой конфигурации и платформах 8.3, но на платформах ниже 8.3.15.1489 особого интереса не представляет.
Добавлена возможность формировать отчет под пользователями без полных прав, т.е. если у текущего пользователя нет права на чтение какой-либо таблицы, то эта таблица будет пропущена и в отчет не попадет. Таким образом, появилась возможность формировать отчет под любым пользователем без выпадения исключительной ситуации в случае отсутствия прав на чтение таблицы, но тем не менее для получения максимально полной информации отчет нужно формировать под пользователями у которых есть право на чтение для всех таблиц. Кроме того получение количества записей таблиц сделано с учетом RLS, так что это тоже следует учесть.
Внимание! Выполнение может занять длительное время, особенно при большом объеме данных. Для полноты информации, отчет следует запускать под пользователем у которого есть права на чтение всех таблиц. Всем успехов!
Проверено на следующих конфигурациях и релизах:
- Зарплата и управление персоналом, редакция 3.1, релизы 3.1.14.208