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


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

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

Отчет содержит 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-запросы. Буду рад, если пригодится кому-либо еще. Принимаются любые замечания и предложения по доработке.

28 Comments

  1. Magister

    А ничего, что 1С в лицензии запрещает прямой доступ к базе?

    Reply
  2. YVolohov

    (1) Судя по всему автор использует родную функцию 1С ПолучитьСтруктуруХраненияБазыДанных(). А это точно не нарушение лицензии 1С.

    Reply
  3. Kaperang

    Цитирую по синтаксис-справочнику:

    »

    ПолучитьСтруктуруХраненияБазыДанных(…)



    Примечание:

    Следует использовать метод только для административных задач обслуживания базы данных и анализа записей технологического журнала. Не рекомендуется применять метод для реализации какой-либо части прикладной функциональности.

    «

    Reply
  4. Kaperang

    Цитата из лицензии на 1С:

    »

    2.3 Лицензиат обязуется не допускать нарушений исключительных прав Правообладателя на ПРОГРАММНЫЙ ПРОДУКТ, в ч не совершать и не допускать совершения третьими лицами следующих действий без специального письменного разрешения Правообладателя:

    2.4 Распространять ПРОГРАММНЫЙ ПРОДУКТ или отдельные его компоненты;

    2.5 Вносить какие-либо изменения в код ПРОГРАММНОГО ПРОДУКТА, за исключением тех. которые вносятся штатными средствами, входящими в состав ПРОГРАММНОГО ПРОДУКТА и описанными в сопроводительной документации;

    2.6 Осуществлять доступ к информационной базе ПРОГРАММНОГО ПРОДУКТА и построение систем на основе ПРОГРАММ ПРОДУКТА с помощью средств и технологических решений, не предусмотренных в сопроводительной документации;

    2.7 Совершать действия, результатом которых является устранение или снижение эффективности технических средств защи авторских прав, применяемых Правообладателем, включая применение программных и технических средств «мультиплексирова средств, изменяющих алгоритм работы программных или аппаратных средств защиты ПРОГРАММНОГО ПРОДУКТА, а также использовать ПРОГРАММНЫЙ ПРОДУКТ с устраненными или измененными без разрешения Правообладателя средствами защиты;

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

    «

    Reply
  5. Gilev.Vyacheslav

    Слушьте, очередную вариацию уже 10 раз вижу, ну хоть бы один уж сделал хотя бы все тоже самое под 8.2

    а то минусы поставлю «не тратить время на одно и тоже» 🙂

    Reply
  6. Kaperang

    На основании внимательного прочтения лицензии 1С возникает следующая дилемма: В штатном языке 1С есть (и в сопроводительной документации описан) механизм работы с COM-объектами в целом, но не описан функционал конкретного COM-объекта ADODB (который обычно используется для прямых SQL-запросов). Равно как и функционал любых других COM-объектов (кроме штатных 1С-ных («V81.COMConnector» и»V81.Application»). Означает ли это, что нельзя использовать никакие COM-объекты, кроме двух перечисленных выше?

    Reply
  7. Ish_2

    (5) Первая публикация автора.

    Reply
  8. tango

    мимо лицензий 1с я без шуток не хожу

    Reply
  9. Kaperang

    (5) А штатный механизм конвертации обработок уже не моден? Впрочем, выкладываю версию для 8.2

    Reply
  10. Gilev.Vyacheslav

    (7) а я пока и дал время «оправдаться»

    я сам таких публикаций могу навыкладывать мешок…

    популярней раз все что обработки «консоли запросов» 🙂

    Reply
  11. Ish_2

    (6) На темы «лицензионного соглашения 1с», «структуры хранения бахы данных» на ИС много чего написано. Думаю , народ просто устал.

    Reply
  12. Kaperang

    Просмотрел аналогичные обработки на инфорстарте. Заинтересовала Структура таблиц SQL — в ней на основании полученных сведений о таблицах БД можно генерить тексты запросов. К сожалению, реализация зачаточная, но сама идея,IMHO, шикарная. Думаю, прикручу аналогичную фишку к своему отчету, плюс сделаю возможность сразу из формы обработки исполнять SQL-запрос на сервере. Этакий конструктор SQL-запросов в миниатюре. Обработка пишется под себя. Сейчас активно изучаю SQL-ные запросы. Если получится что-то путное, и тема будет народу интересна, выложу.

    Reply
  13. K_A_O

    (12) рекомендую посмотреть SQLPlus, там это уже есть

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

    Но можно развивать дальше 🙂

    Reply
  14. MrGrey

    Обе обработки под 8.2!

    Под 8.1 не откравается 🙁

    Reply
  15. Gilev.Vyacheslav

    (12) я сам плохо «сформулировал задачу», в уме то держал возможность работы через веб-клиент

    конечно, просто сконвертировать обработку может каждый из 8.1

    ставлю обещанный плюс, хорошая работа, и не только для первой публикации

    если будет интересно развивать. могу кинуть на почту свою lock.epf 🙂

    Reply
  16. Gilev.Vyacheslav

    небольшое пожелание:

    мне например часто приходиться решать не задачу посмотреть на объекты и имена таблиц,

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

    я в свой обработке это релазивывал тупым беребором всего

    но с функцией поиска обработка обретет еще и реальное использование

    это как пожелание

    Reply
  17. Kaperang

    (14) Поправил файлы: теперь первый — под 8.1, второй — под 8.2 — в соответствии с описанием.

    Reply
  18. Kaperang

    (13) Посмотрел SQLPlus Да, ничто не ново под луной 🙂 Обработка — вещь!!! На первый взгляд,все что нужно, для полного счастья в жизни, уже прикручено, даже help толковый есть. Будем изучать и пользовать.

    Reply
  19. fishca

    (18) а так слабо: http://infostart.ru/public/73264/ ? :))))))))))))))))))

    Reply
  20. Kaperang

    (19) Можно и так. Только зачем повторяться. Лучше сделаю что-нить новое, до чего еще никто до меня не додумался 🙂

    Reply
  21. tartalia

    отличный отчет, нашлось много чего нового

    Reply
  22. dev.evgen

    большое спасибо. сразу решилось много проблем

    Reply
  23. Maks888

    Отчет хороший, спасибо! Разве что на закладке «Метаданные» не хватает списка отчетов..

    Reply
  24. klel

    Спасибо полезная штучка 🙂 теперь хоть знаю какая таблица и где.

    Reply
  25. mk314

    Работает в конфигурации с управляемыми формами?

    Reply
  26. nafa

    Спасибо за обработку. Показывает все, вкл. таблицы изменений.

    Reply
  27. Agema

    Здравствуйте. Работает на УФ или нет?

    Reply
  28. Kaperang

    Обработка написана в 2010 г. ещё под платформу 8.1. Чуть позже сконвертирована под 8.2. Естественно все на обычных формах — тогда и термина то такого «управляемые формы» не было.

    Reply

Leave a Comment

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