Просмотр и анализ структуры базы данных (отчет на СКД)

Публикация № 1098336

Разработка - Инструментарий разработчика

SQLServer SQL Server PostgreSQL структура базы данных индексы таблицы метаданные

Отчет для просмотра и анализа структуры базы данных с поддержкой файловых баз (ограниченный режим), а также баз на SQL Server и PostgreSQL.

Назначение и возможности

Отчет предназначен для просмотра и анализа структуры информационных баз 1С. Может быть полезным инструментам для администраторов, специалистов по производительности и энтузиастов, изучающих работу платформы на уровне базы данных.

Основные возможности отчета:

  • Отображение таблиц базы данных, их полей и индексов с учетом связей между объектами базы данных и метаданными конфигурации.
  • Вычисление размера таблиц и индексов для объектов конфигурации, а также количества записей в них.
  • Отображение НЕплатформенных индексов в базе (те, что были добавлены вручную администратором или разработчиком).
  • Вывод дополнительных атрибутов СУБД для полей таблицы, индексов и их структуры (например, это возможность установки значения NULL, размер каждого отдельного индекса, проверка наличия платформенного индекса в базе данных, порядок полей в индексе и таблицах и др.).
  • Получение информации обо всех таблицах информационной базы, а не только тех, что доступны через "ПолучитьСтруктуруХраненияБазыДанных()". Например, отчет позволит посмотреть информацию о системных таблицах "V8USERS" и "PARAMS", а также отобразит таблицы другие служебные / системные таблицы.
  • Дополнительная классификация объектов и их частей. Например, добавлены поля "Вид объекта", "Тип объекта", доп. описание полей составных типов данных и др.
  • Расширенное отображение типа данных 1С для полей.
  • 10 предопределенных вариантов отчетов с различной детализацией.
  • Гибкая настройка отображения и компоновки данных с помощью штатных возможностей системы компоновки данных.
  • Поддержка подсистем БСП (варианты отчетов и дополнительные отчеты и обработки).

Отчет поддерживает работу в файловом варианте информационной базы, но в ограниченном режиме - доступен только просмотр структуры базы данных, полученный с помощью штатного метода "ПолучитьСтруктуруХраненияБазыДанных()". Весь расширенный функционал доступен только для клиент-серверного варианта работы платформы 1С в связке с такими СУБД как SQL Server и PostgreSQL.

Необходимая версия платформы для работы отчета - 8.3.5 и выше. Внутри отчета используется кэширование данных, получение только необходимых данных в зависимости от настроек отчета и еще некоторые фичи.

 
 Но как же файловые базы...

Выше показаны настройки подключения к базе данных для получения дополнительной информации. Ниже, под спойлером, Вы найдете подробное описание каждой настройки.

 
 Настройки подключения

Классическим вариантом отчета, который повторяет функциональность большинства обработок схожего назначения на Инфостарт (примеры таких разработок смотрите в разделе "Другие ссылки" ниже. И спасибо их авторам за проделанную работу! Вы все потрясающие!является "Таблицы хранения (основная)". Ознакомьтесь со скриншотом под спойлером, ничего не напоминает?

 
 Скриншот под спойлером :)

Обратите внимание на системные таблицы и группировку по дополнительным полям классификации. Остальные варианты уже имеют значительные отличия и кратко будут рассмотрены далее.

Варианты отчетов

Изначально отчет содержит в себе 10 предопределенных вариантов. Почему 10? Я не знаю.

 
 Таблицы хранения (только структура)
 
 Таблицы хранения (основная)
 
 Таблицы хранения (с полями)
 
 Таблицы хранения (с полями, расширенный)
 
 Таблицы хранения (с индексами)
 
 Таблицы хранения (с индексами, расширенный)
 
 Использовано места по видам объектов
 
 Количество записей по видам объектов
 
 ТОП 10 объектов по размеру
 
 ТОП 10 объектов по количеству записей
 
 Неиспользуемые таблицы

Но не останавливайтесь на том, что есть! Импровизируйте, настраивайте, экспериментируйте! Создайте свой вариант с блэкджеком и кастомизацией!

Послесловие

Это еще не конец! Перед Вами первая и основная версия отчета, которую я использую для повседневных задач. В будущем, если появится интерес от сообщества, будет опубликована расширенная версия отчета, с помощью которой можно будет:

  • Получить еще более подробную классификацию таблиц и полей базы данных
  • Проанализировать файловые группы и секции (да, в мире 1С это возможно!)
  • Проанализировать состояние индексов и статистик
  • Получить рекомендации по отсутствующим индексам в базе данных (как для SQL Server, так и для всеми теперь обожаемого PostgreSQL!)
  • Ответить на вопрос "Какие индексы я создал два года назад, но они при этом ни разу не использовались?"

Отчет создавался человеком для человеков, поэтому человеческий фактор исключать нельзя :) Прошу обо всех найденных ошибках, неточностях, предложениях писать в приватный чат (так будет проще уточнять детали) или в комментариях.

Да прибудет с Вами сила, творческая мощь, тяга к знаниям и просто хорошее настроение!

 
 История изменений отчета
 
 v1.0.0 - 24.07.19 
 
 v1.0.0.1 - 27.07.19
 
 v1.0.0.3 - 07.01.20
 
 v1.0.0.4 - 28.01.20

Работа над отчетом продолжается :)

Другие ссылки

Скачать файлы

Наименование Файл Версия Размер
Просмотр и анализ структуры базы данных (отчет на СКД)
.erf 64,02Kb
28.01.20
147
.erf 1.0.0.3 64,02Kb 147 Скачать

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. VmvLer 24.07.19 19:46 Сейчас в теме
по презентации, вроде, монтументально.

конечно, главная практическая ценность скрыта в варианте послесловия.

расширенная будет, вероятно, за звонкую монету и представленный вариант
наверняка маркетинговое исследование для определения цены.
2. YPermitin 8265 24.07.19 20:08 Сейчас в теме
(1) мне очень жаль, что я вызвал у вас такие мысли.

То есть отчет бесполезен и не стоило тратить время на его реализацию?
3. sapervodichka 3446 24.07.19 21:33 Сейчас в теме
крутая вещь, однозначно + у меня есть, но более народный взгляд ))) https://infostart.ru/public/1093355/ с возможностью базы сравнить между собой
YPermitin; +1 Ответить
4. Xershi 953 24.07.19 22:05 Сейчас в теме
(3) ну уже хоть что-то свое появилось) Или скрестили. Осталось написать под 8.3.15, там разработчики обещали платформенный механизм.
5. YPermitin 8265 25.07.19 07:05 Сейчас в теме
(3) хороший инструмент. Я на него ссылку добавил в конце статьи :)
sapervodichka; +1 Ответить
6. Aletar 25.07.19 09:34 Сейчас в теме
В будущем, если появится интерес от сообщества, будет опубликована расширенная версия отчета


Интерес, определенно, есть.
PLAstic; YPermitin; +2 Ответить
7. YPermitin 8265 25.07.19 11:49 Сейчас в теме
(6) это хорошо :)

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

Из того что планирую добавить:
- файловые группы и секции
- Улучшить классификацию служебных таблиц и полей
- Подробная информация об объектах статистики и индексах
- Поиск избыточных индексов
- Анализ недостающих индексов
- Проблемы таблицы остатков
- Поиск излишних таблиц, появившихся при неудачной реструктуризации
- Подсчет количества строк и приблизительную оценку размера данных для файловых баз

Часть из этого уже готова, только нужно привести в порядок. Вообщем, функционал будет, но не в ближайшее время.
8. Разумов 26.07.19 06:05 Сейчас в теме
Классный инструмент! Жаль, мани нет, с удовольствием бы поигрался со своей базой.
9. ligsht 9 26.07.19 14:10 Сейчас в теме
{ВнешнийОтчет.ПросмотрИАнализСтруктурыБазыДанных.Форма.ФормаОтчета.Форма(148)}: Ошибка при вызове метода контекста (Execute)
РезультатБД = КомандаБД.Execute();
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Недопустимое имя столбца "is_memory_optimized".


MS SQL 2008.
Поправьте пожалуйста.
YPermitin; +1 Ответить
10. YPermitin 8265 26.07.19 14:14 Сейчас в теме
(9) принято.

Исправлю совместимость со старыми версиями SQL Server и обновлю публикацию.

Чтобы повторно не скачивать - отправлю новую версию в сообщениях.

Всем, кому актуальна работа со старыми версиями СУБД и кто уже скачал отчет - просто напишите в личных сообщениях.
11. parshin 71 26.07.19 14:26 Сейчас в теме
А если postgresql под linux, то не работает. Вот обидно.
YPermitin; +1 Ответить
12. YPermitin 8265 26.07.19 14:33 Сейчас в теме
(11) у Вас только PostgreSQL под .nix или сервер 1С тоже?

Вообще, обращение к БД идет с использованием ADO. Предполагал, что ADO может подключиться к pg под Linux, главное чтоб серер 1С / клиент 1С (в зависимости откуда запрос в настройках) были под Windows.
13. parshin 71 26.07.19 14:36 Сейчас в теме
14. parshin 71 26.07.19 14:39 Сейчас в теме
(12) При запуске с клиента windows ошибка: "PostgreSQL: Ошибка установки соединения:
{ВнешнийОтчет.ПросмотрИАнализСтруктурыБазыДанных.Форма.ФормаНастроекПодключения.Форма(190)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию"
Похоже надо ODBC настроить. Попробую разобраться.
YPermitin; +1 Ответить
15. YPermitin 8265 26.07.19 14:45 Сейчас в теме
(14) хорошо, отпишитесь получится или нет.

Тоже поэкспереметирую, опишу этот момент в инструкции к отчету.

Варианты по работе с приложениями 1С под линукс возьму на "подумать".
16. parshin 71 26.07.19 14:49 Сейчас в теме
(15)
Работает!
1. Надо установить ODBC драйвер отсюда (я установил самый свежий): https://www.postgresql.org/ftp/odbc/versions/msi/
2. В 1с в настройках подключения установить галку "Запросы с клиента"
YPermitin; +1 Ответить
17. YPermitin 8265 26.07.19 14:51 Сейчас в теме
18. YPermitin 8265 26.07.19 22:24 Сейчас в теме
Публикация обновлена:
1. Обновлен файл отчета. Исправлена совместимость со SQL Server 2008 / 2012 редакциями.
2. Дополнена информация о настройках подключения, если сервер 1С установлен на *.nix системе.
3. Добавлена история изменений в конце публикации.

Всем, кто скачал отчет ранее и необходима совместимость с версиями SQL Server 2008 / 2012 - напишите мне в личные сообщения, предоставлю ссылку для скачивания.
19. user771565 02.10.19 10:13 Сейчас в теме
А кто нибудь знает как напрямую в postgre дернуть картинки из 1с ?
20. YPermitin 8265 02.10.19 21:50 Сейчас в теме
(19) конечно к отчету это не относится, но не могли бы Вы уточнить суть задачи?
21. user771565 03.10.19 03:01 Сейчас в теме
извиняюсь вопрос снят
YPermitin; +1 Ответить
22. mairon 21.10.19 10:31 Сейчас в теме
На конфигурациях УПП и БП2 будет работать?
YPermitin; +1 Ответить
23. YPermitin 8265 21.10.19 10:35 Сейчас в теме
(22) по идее привязки к конфигурациям нет, поэтому должно работать.

Если что-то не так - пишите, разберемся.
24. user1135262 21.10.19 11:24 Сейчас в теме
SQLServer: Ошибка установки соединения:
{ВнешнийОтчет.ПросмотрИАнализСтруктурыБазыДанных.Форма.ФормаНастроекПодключения.Форма(190)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): При входе в систему пользователя "xxx" произошла ошибка.

Как-то можно обойти эту ошибку? MSSQL 2016
YPermitin; +1 Ответить
25. YPermitin 8265 21.10.19 11:28 Сейчас в теме
(24)
При входе в систему пользователя "xxx" произошла ошибка


Подозреваю, что у Вас на сервере СУБД отключена аутентификация средствами SQL Server, только доменная аутентификация доступна.
26. YPermitin 8265 07.01.20 19:48 Сейчас в теме
(0) Публикация обновлена!

Расширение функционала отчета и исправление ошибок:
- Улучшена сортировка полей таблиц и индексов при выводе в отчете. Ранее сортировка выполнялась по имени, теперь в том порядке. в котором поля расположены в базе данных.
- Определение имен полей с служебных таблицах работает более точно. Ранее в определенных ситуациях имя поля могло быть неизвестно.
- Исправлено получение размера конкретных индексов. Ранее размер конкретного индекса определялся только для основного кластерного индекса. Также теперь размер индекса всегда отображается в одной колонке (вместе с итоговым размером индексов для таблицы).
- Улучшение показателей размера индексов для PostgreSQL.
- Добавлен вариант "Неиспользуемые таблицы", показывающий те таблицы, которые фактически не используются. Это могут быть таблицы без записей, или таблицы после неудачной реструктуризации.
- Исправлены ошибки открытия форм, если отчет встроен в конфигурацию.
27. sertak 232 07.05.20 11:39 Сейчас в теме
Буквально сегодня пришла в голову мысль запилить обработку, которая будет через DMV/DMF вытягивать рекомендации по отсутствующим индексам и выводить соответствующие объекты 1С, ну а там хвостом уже и что-нибудь сопутствующее типа всех индексов и другой красоты, и вот оказывается все уже написано ). Шикарный функционал, отсутствующих индексов, правда, пока нет, но они в планах. Муст хаве короче и снимаю шляпу.
Оставьте свое сообщение

См. также

daСклонение: склонение ФИО, должностей, чисел, прилагательных, существительных на языке 1С + ТестЦентр Промо

Универсальные функции v8 1cv8.cf Абонемент ($m)

Функция предназначена для склонения выражений, которые часто требуется при формировании печатных форм договоров и прочих печатных форм. Функция склоняет по падежам ФИО, должности, числительные, валюты, единицы измерения, предметы. Также функция склоняет глаголы и прилагательные по числам и родам и существительные по числам. Имеется режим определения рода переданного выражения. Поддержка форматной строки для вывода результата. Функция не использует внешние библиотеки и веб-сервисы, написана на чистом языке 1С, и поэтому легко встраивается в любую конфигурацию или внешнюю обработку. Правила склонения оформлены в виде таблицы и могут быть легко изменены при необходимости.

1 стартмани

14.02.2015    99033    96    daMaster    88    

Сравнение реального дохода со средним доходом из API.HH.RU

Зарплата Управленческие v8 v8::СПР ЗУП3.x УУ Абонемент ($m)

Внешняя обработка на управляемой форме для 1С:Предприятие 8.3 по интеграции с HH.RU используя HH REST API. Ключевые функции: получение списка вакансий по должностям (Ключ для работы не нужен); расчет среднего дохода; Тестирование проводилось на платформе 1С:Предприятие 8.3 (8.3.13.1513) Зарплата и управление персоналом, редакция 3.1 (3.1.11.68) совместно с API.HH.RU.

1 стартмани

11.11.2019    3643    4    solaru    2    

Конфигурация для рекламного агентства

Управление услугами и сервисом Управление взаимоотношениями с клиентами (СRM) Производство готовой продукции (работ, услуг) Управление взаимоотношениями с клиентами (СRM) Производство готовой продукции (работ, услуг) v8 Реклама, PR и маркетинг УУ Абонемент ($m)

Данная конфигурация выполнена для решения тестового задания: Цель задания: 1) Понять, на каком из клиентов сколько мы заработали;  2) Понять, по какому виду СМИ сколько мы заработали;  3) Проследить по каждой услуге: у кого за сколько купили и кому за сколько продали, с возможностью перейти в соответствующий документ. Реализовано с помощью: 1. Справочники - контрагенты, номенклатура 2. Документы - Поступление услуг, реализация услуг 3. Отчеты - отчет по контрагентам, номенклатуре и движений.

1 стартмани

21.05.2019    3917    0    solaru    0    

Загрузка номенклатуры в УТ 10.3 из Excel файла с генерацией штрихкодов

Загрузка и выгрузка в Excel Обработка справочников Оптовая торговля Розничная торговля Учет ТМЦ Оптовая торговля Розничная торговля Учет ТМЦ v8 УТ10 Россия Абонемент ($m)

Обработка позволяет генерировать новые номенклатурные позиции на основе данных из файла Excel с последующей генерацией штрихкодов (ШК). Может быть полезна при больших поступлениях товаров на склад, где ручное создание и присваивание штрихкода  (ШК) может занимать много времени.

1 стартмани

24.03.2017    7523    6    solaru    0    

Под капотом управляемых форм

Практика программирования v8 1cv8.cf Бесплатно (free)

Управляемые формы уже давно и плотно вошли в жизнь 1С-разработчика. Однако, судя по недавним публикациям на Инфостарте, многие до сих пор мало знакомы с ними. Предлагаю разобраться с тем, что же это такое.

26.08.2013    260383    0    Evil Beaver    266    

[NotaBene] Универсальный отчет по таблице значений

Практика программирования v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m)

1C v.7.7 Готовое решение. Не требует настройки. Не требует допрограммирования. Данная обработка решает часто встречающуюся задачу вывода в "красивом" виде таблицы значений (полученной, например, из запроса). Поддерживается произвольное группирование данных, отключение/включение группировок, в т.ч и создание "шахматок" (типа "продажи понедельно"). Обработка может использоваться как и в отладочных целях (для нормального просмотра ТЗ), так и в составе вполне рабочих отчетов. По крайней мере, я неоднократно клиентам данную обработку ставил вместо того, чтобы каждый раз писать замороченные выводы данных. И клиенты довольны, и мне - проще...

2 стартмани

07.05.2007    27909    1    CheBurator    61