Структура базы данных в терминах СУБД

Опубликовал Леонид Мельников (Kaperang) в раздел Администрирование - Статистика базы данных

Отчет "Структура базы данных в терминах СУБД" позволяет по заданным объектам метаданных получить  описание структуры таблиц, индексов и полей базы данных в терминах используемой СУБД.

Отчет "Структура базы данных в терминах СУБД" позволяет по заданным объектам метаданных получить  описание структуры таблиц, индексов и полей базы данных в терминах используемой СУБД.

Отчет содержит 5 закладок.

На первой закладке "Метаданные" в дереве метаданных следует указать интересующие объекты.(Если не будет указан ни один объект, будет выведена структура всей базы данных). После этого

следует нажать кнопку "Выполнить".

На закладках "СтруктураБД", "Поля", "Индексы", "ТаблицыИндексов" будут отображены  структуры таблиц, индексов и полей базы данных в терминах используемой СУБД.

На закладке "СтруктураБД" отображаются таблицы СУБД, в которых хранится исследуемый объект метаданных. Таблица содержит следующие колонки:

   ИмяТаблицыХранения(StorageTableName) – имя таблицы SDBL или базы данных;
   ИмяТаблицы(TableName) – имя таблицы в терминах языка запросов (для тех у кого оно есть);
   Метаданные(Metadata) – полное имя объекта метаданных;
   Назначение(Purpose) – назначение таблицы:

      Основная(Main) - основная; 
      Константы(Constants) - константы; 
      Итоги(Totals) - итоги; 
      ИтогиПоСчетам(TotalsByAccounts) - итоги по счетам; 
      ИтогиПоСчетамССубконто(TotalsByAccountsWithExtDim) - итоги по счетам с субконто; 
      ИтогиМеждуСчетами(TotalsBetweenAccounts) - итоги между счетами; 
      ВидыСубконто(ExtDimensionTypes) - виды субконто; 
      ЗначенияСубконто(ExtDimensionsValues) - значения субконто; 
      ВытесняющиеВидыРасчета(DisplacingCalculationTypes) - вытесняющие виды расчета; 
      ПорядокВытеснения(DisplacementOrder) - порядок вытеснения; 
      ВедущиеВидыРасчета(LeadingCalculationTypes) - ведущие виды расчета; 
      БазовыеВидыРасчета(BaseCalculationTypes) - базовые виды расчета; 
      ПериодыДействия(ActionPeriods) - периоды действия; 
      ГраницыПоследовательности(SequenceBoundaries) - границы последовательности; 
      ТочкиМаршрута(RoutePoints) - точки маршрута бизнес-процесса; 
      ТабличнаяЧасть(TabularSection) - табличная часть; 
      РегистрацияИзменений(ChangeRecord) - регистрация изменений; 
      РегистрацияИзмененийКонстант(ConstantsChangeRecord) - регистрация изменений констант; 
      РегистрацияИзмененийКонфигурации(ConfigChangeRecord) - регистрация изменений конфигурации; 
      РегистрацияИзмененийВнешнихСвойствКонфигурации(ConfigExtPropertiesChangeRecord) - регистрация изменений внешних свойств конфигурации; 
      ТаблицаНастроекХраненияИтоговРегистровНакопления(AccumulationRegistersOptionsTable) - таблица настроек хранения итогов регистров накопления; 
      ТаблицаНастроекХраненияИтоговРегистровБухгалтерии(AccountRegistersOptionsTable) - таблица  настроек хранения итогов регистров бухгалтерии;
 

Интересующую таблицу СУБД можно более подробно исследовать на последующих закладках: "Поля", "Индексы", "Таблица Индексов". Для этого необходимо выделить одинарным щелчком мыши выделить в таблице на закладке "СтруктураБД" нужную таблицу СУБД.

В таблице на закладке "Поля" при этом отобразится структура полей исследуемой таблицы СУБД. В таблице на закладке "Индексы" отобразятся индексы  исследуемой таблицы СУБД. Если выделить одинарным щелчком левой кнопки мыши интересующий индекс, то в таблице на закладке "Таблица индексов" отобразится структура таблицы индексов, используемая при поиске по выделенному индексу в исследуемой таблице СУБД.

Содержимое интересующей таблицы можно распечатать,  нажав по кнопке с изображением принтера.

Теоретически должна работать на любой конфигурации, т.к. обращается к метаданным. На штатных "БП", "УП" от "1С" и сильно переписанной  "Альфа-Авто" от "Рарус" отработала без проблем.

 Код отчета открытый.  В основе действия отчета лежит штатная функция языка ПолучитьСтруктуруХраненияБазыДанных(...), к которой был прикручен более-менее удобный интерфейс для фильтрации  и просмотра полученных данных. Частично использован код обработки "УниверсальнаяЗагрузкаВыгрузкаЗагрузка 8.1" с диска ИТС - для формирования дерева метаданных.

Отчет писался под себя, когда необходимо было узнать имена таблиц для подстановки в прямые SQL-запросы. Буду рад, если пригодится кому-либо еще. Принимаются любые замечания и предложения по доработке.

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

Наименование Файл Версия Размер
Структура БД_v_1.4.erf для 8.1
.erf 22,13Kb
19.05.14
253
.erf 22,13Kb 253 Скачать
Структура БД_v_1.4.erf для 8.2
.erf 21,48Kb
19.05.14
172
.erf 21,48Kb 172 Скачать

См. также

Комментарии
1. Misha ⁠ (Magister) 131 26.08.10 09:06 Сейчас в теме
А ничего, что 1С в лицензии запрещает прямой доступ к базе?
2. Ярослав Волохов (YVolohov) 694 26.08.10 09:31 Сейчас в теме
(1) Судя по всему автор использует родную функцию 1С ПолучитьСтруктуруХраненияБазыДанных(). А это точно не нарушение лицензии 1С.
3. Леонид Мельников (Kaperang) 90 26.08.10 09:34 Сейчас в теме
Цитирую по синтаксис-справочнику:
"
ПолучитьСтруктуруХраненияБазыДанных(...)
...
Примечание:
Следует использовать метод только для административных задач обслуживания базы данных и анализа записей технологического журнала. Не рекомендуется применять метод для реализации какой-либо части прикладной функциональности.
"
4. Леонид Мельников (Kaperang) 90 26.08.10 10:09 Сейчас в теме
Цитата из лицензии на 1С:
"
2.3 Лицензиат обязуется не допускать нарушений исключительных прав Правообладателя на ПРОГРАММНЫЙ ПРОДУКТ, в ч не совершать и не допускать совершения третьими лицами следующих действий без специального письменного разрешения Правообладателя:
2.4 Распространять ПРОГРАММНЫЙ ПРОДУКТ или отдельные его компоненты;
2.5 Вносить какие-либо изменения в код ПРОГРАММНОГО ПРОДУКТА, за исключением тех. которые вносятся штатными средствами, входящими в состав ПРОГРАММНОГО ПРОДУКТА и описанными в сопроводительной документации;
2.6 Осуществлять доступ к информационной базе ПРОГРАММНОГО ПРОДУКТА и построение систем на основе ПРОГРАММ ПРОДУКТА с помощью средств и технологических решений, не предусмотренных в сопроводительной документации;
2.7 Совершать действия, результатом которых является устранение или снижение эффективности технических средств защи авторских прав, применяемых Правообладателем, включая применение программных и технических средств "мультиплексирова средств, изменяющих алгоритм работы программных или аппаратных средств защиты ПРОГРАММНОГО ПРОДУКТА, а также использовать ПРОГРАММНЫЙ ПРОДУКТ с устраненными или измененными без разрешения Правообладателя средствами защиты;
2.8 Восстанавливать исходный код, декомпилировать и/или деассемблировать программную часть системы, за исключением случаев, и лишь в той степени, в какой такие действия специально разрешены действующим законодательством.
"
5. gilv (Gilev.Vyacheslav) 26.08.10 12:04 Сейчас в теме
Слушьте, очередную вариацию уже 10 раз вижу, ну хоть бы один уж сделал хотя бы все тоже самое под 8.2

а то минусы поставлю "не тратить время на одно и тоже" :)
6. Леонид Мельников (Kaperang) 90 26.08.10 13:14 Сейчас в теме
На основании внимательного прочтения лицензии 1С возникает следующая дилемма: В штатном языке 1С есть (и в сопроводительной документации описан) механизм работы с COM-объектами в целом, но не описан функционал конкретного COM-объекта ADODB (который обычно используется для прямых SQL-запросов). Равно как и функционал любых других COM-объектов (кроме штатных 1С-ных ("V81.COMConnector" и"V81.Application"). Означает ли это, что нельзя использовать никакие COM-объекты, кроме двух перечисленных выше?
7. Игорь Исхаков (Ish_2) 960 26.08.10 13:20 Сейчас в теме
(5) Первая публикация автора.
8. Михаил Ражиков (tango) 466 26.08.10 13:24 Сейчас в теме
мимо лицензий 1с я без шуток не хожу
9. Леонид Мельников (Kaperang) 90 26.08.10 13:59 Сейчас в теме
(5) А штатный механизм конвертации обработок уже не моден? Впрочем, выкладываю версию для 8.2
10. gilv (Gilev.Vyacheslav) 26.08.10 16:28 Сейчас в теме
(7) а я пока и дал время "оправдаться"
я сам таких публикаций могу навыкладывать мешок...

популярней раз все что обработки "консоли запросов" :)
11. Игорь Исхаков (Ish_2) 960 26.08.10 16:41 Сейчас в теме
(6) На темы "лицензионного соглашения 1с", "структуры хранения бахы данных" на ИС много чего написано. Думаю , народ просто устал.
vvvnsk; jeto; +2 Ответить
12. Леонид Мельников (Kaperang) 90 26.08.10 18:19 Сейчас в теме
Просмотрел аналогичные обработки на инфорстарте. Заинтересовала Структура таблиц SQL - в ней на основании полученных сведений о таблицах БД можно генерить тексты запросов. К сожалению, реализация зачаточная, но сама идея,IMHO, шикарная. Думаю, прикручу аналогичную фишку к своему отчету, плюс сделаю возможность сразу из формы обработки исполнять SQL-запрос на сервере. Этакий конструктор SQL-запросов в миниатюре. Обработка пишется под себя. Сейчас активно изучаю SQL-ные запросы. Если получится что-то путное, и тема будет народу интересна, выложу.
13. Андрей Крутских (K_A_O) 481 26.08.10 20:28 Сейчас в теме
(12) рекомендую посмотреть SQLPlus, там это уже есть

http://infostart.ru/public/14692/

Но можно развивать дальше :)
14. MrGRey (MrGrey) 27.08.10 10:00 Сейчас в теме
Обе обработки под 8.2!
Под 8.1 не откравается :(
15. gilv (Gilev.Vyacheslav) 29.08.10 12:34 Сейчас в теме
(12) я сам плохо "сформулировал задачу", в уме то держал возможность работы через веб-клиент
конечно, просто сконвертировать обработку может каждый из 8.1

ставлю обещанный плюс, хорошая работа, и не только для первой публикации
если будет интересно развивать. могу кинуть на почту свою lock.epf :)
16. gilv (Gilev.Vyacheslav) 29.08.10 12:36 Сейчас в теме
небольшое пожелание:
мне например часто приходиться решать не задачу посмотреть на объекты и имена таблиц,

а быстро по имени sql-таблицы получить имя метаданных, и только потом копаться
я в свой обработке это релазивывал тупым беребором всего

но с функцией поиска обработка обретет еще и реальное использование
это как пожелание
17. Леонид Мельников (Kaperang) 90 30.08.10 14:30 Сейчас в теме
(14) Поправил файлы: теперь первый - под 8.1, второй - под 8.2 - в соответствии с описанием.
18. Леонид Мельников (Kaperang) 90 30.08.10 17:24 Сейчас в теме
(13) Посмотрел SQLPlus Да, ничто не ново под луной :) Обработка - вещь!!! На первый взгляд,все что нужно, для полного счастья в жизни, уже прикручено, даже help толковый есть. Будем изучать и пользовать.
19. Сергей Рудаков (fishca) 1039 01.09.10 13:15 Сейчас в теме
20. Леонид Мельников (Kaperang) 90 13.09.10 13:10 Сейчас в теме
(19) Можно и так. Только зачем повторяться. Лучше сделаю что-нить новое, до чего еще никто до меня не додумался :)
21. евгений федоров (tartalia) 01.11.11 16:44 Сейчас в теме
отличный отчет, нашлось много чего нового
22. Evgeniy Ivanov (dev.evgen) 10.01.12 12:56 Сейчас в теме
большое спасибо. сразу решилось много проблем
23. Макс Такойто (Maks888) 1 16.05.12 10:33 Сейчас в теме
Отчет хороший, спасибо! Разве что на закладке "Метаданные" не хватает списка отчетов..
24. Dimon (klel) 07.01.13 10:53 Сейчас в теме
Спасибо полезная штучка :) теперь хоть знаю какая таблица и где.
25. Михаил Калачев (mk314) 12 18.06.13 19:35 Сейчас в теме
Работает в конфигурации с управляемыми формами?