gifts2017

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

Опубликовал Леонид Мельников (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
163
.erf 21,48Kb 163 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Misha ⁠ (Magister) 26.08.10 09:06
А ничего, что 1С в лицензии запрещает прямой доступ к базе?
2. Ярослав Волохов (YVolohov) 26.08.10 09:31
(1) Судя по всему автор использует родную функцию 1С ПолучитьСтруктуруХраненияБазыДанных(). А это точно не нарушение лицензии 1С.
3. Леонид Мельников (Kaperang) 26.08.10 09:34
Цитирую по синтаксис-справочнику:
"
ПолучитьСтруктуруХраненияБазыДанных(...)
...
Примечание:
Следует использовать метод только для административных задач обслуживания базы данных и анализа записей технологического журнала. Не рекомендуется применять метод для реализации какой-либо части прикладной функциональности.
"
4. Леонид Мельников (Kaperang) 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) 26.08.10 13:14
На основании внимательного прочтения лицензии 1С возникает следующая дилемма: В штатном языке 1С есть (и в сопроводительной документации описан) механизм работы с COM-объектами в целом, но не описан функционал конкретного COM-объекта ADODB (который обычно используется для прямых SQL-запросов). Равно как и функционал любых других COM-объектов (кроме штатных 1С-ных ("V81.COMConnector" и"V81.Application"). Означает ли это, что нельзя использовать никакие COM-объекты, кроме двух перечисленных выше?
7. Игорь Исхаков (Ish_2) 26.08.10 13:20
(5) Первая публикация автора.
8. Михаил Ражиков (tango) 26.08.10 13:24
мимо лицензий 1с я без шуток не хожу
9. Леонид Мельников (Kaperang) 26.08.10 13:59
(5) А штатный механизм конвертации обработок уже не моден? Впрочем, выкладываю версию для 8.2
10. gilv (Gilev.Vyacheslav) 26.08.10 16:28
(7) а я пока и дал время "оправдаться"
я сам таких публикаций могу навыкладывать мешок...

популярней раз все что обработки "консоли запросов" :)
11. Игорь Исхаков (Ish_2) 26.08.10 16:41
(6) На темы "лицензионного соглашения 1с", "структуры хранения бахы данных" на ИС много чего написано. Думаю , народ просто устал.
vvvnsk; jeto; +2 Ответить
12. Леонид Мельников (Kaperang) 26.08.10 18:19
Просмотрел аналогичные обработки на инфорстарте. Заинтересовала Структура таблиц SQL - в ней на основании полученных сведений о таблицах БД можно генерить тексты запросов. К сожалению, реализация зачаточная, но сама идея,IMHO, шикарная. Думаю, прикручу аналогичную фишку к своему отчету, плюс сделаю возможность сразу из формы обработки исполнять SQL-запрос на сервере. Этакий конструктор SQL-запросов в миниатюре. Обработка пишется под себя. Сейчас активно изучаю SQL-ные запросы. Если получится что-то путное, и тема будет народу интересна, выложу.
13. Андрей Крутских (K_A_O) 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) 30.08.10 14:30
(14) Поправил файлы: теперь первый - под 8.1, второй - под 8.2 - в соответствии с описанием.
18. Леонид Мельников (Kaperang) 30.08.10 17:24
(13) Посмотрел SQLPlus Да, ничто не ново под луной :) Обработка - вещь!!! На первый взгляд,все что нужно, для полного счастья в жизни, уже прикручено, даже help толковый есть. Будем изучать и пользовать.
19. Сергей Рудаков (fishca) 01.09.10 13:15
20. Леонид Мельников (Kaperang) 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) 16.05.12 10:33
Отчет хороший, спасибо! Разве что на закладке "Метаданные" не хватает списка отчетов..
24. Dimon (klel) 07.01.13 10:53
Спасибо полезная штучка :) теперь хоть знаю какая таблица и где.
25. Михаил Калачев (mk314) 18.06.13 19:35
Работает в конфигурации с управляемыми формами?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа