IE 2016

Структура хранения базы данных (управляемые формы)

Опубликовал bforce в раздел Администрирование - Поиск данных

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

Платформа 1С представляет собой высокоуровневое средство работы с базами данных. В общем случае, разработчику не нужно задумываться что и как происходит на стороне СУБД, так как платформа сама решает сколько ей создавать таблиц и какие внутри них буду поля.

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

Как раз для такого случая предназначена встроенная функция ПолучитьСтруктуруХраненияБазыДанных(), возвращающая все необходимые данные в виде таблицы значений. Причем некоторые реквизиты (Поля и Индексы) этой таблицы сами представляют собой таблицы значений.

С одной стороны, все данные в одной структуре иметь удобно, но, с другой, возникают дополнительные сложности с передачей этой таблицы на клиента (метод Загрузить(), к сожалению, не загружает вложенные таблицы). Ввиду этого приходится пробегать по всем стокам таблицы в цикле, что при больших объемах приводит к замедлению работы.

В связи с этим лучшим вариантом будет передавать в функцию имена объектов метаданных, чтобы уменьшить объем возвращаемых данных. Однако не все таблицы СУБД связаны с метаданными конфигурации, поэтому возможность просмотреть полный список я оставил.

Функционал обработки

При активизации элемента дерева метаданных проихсодит заполнение списка таблиц, полей и индексов. При двойном клике по корню дерева отображаются все таблицы, включая служебные (не рекомендуется, так как возрастают объемы данных, по которым идет поиск).

В табличных частях работают стандартные команды поиска и вывода списка.

Отличия от существующих реализаций

Существует несколько схожик публикаций, например, http://infostart.ru/public/90486/ и http://infostart.ru/public/91004/. Однако их неудобство заключается в отсутствии дерева метаданных, что затрудняет навигацию. Поиск осуществляется также по называнию таблиц и полей в базе, а не наоборот.

Наиболее близка по функционалу к публикация автора le_(http://infostart.ru/public/128235/). В отличие от нее, данная обработка  содержит наиболее полное дерево метаданных (планы обмена, константы, журналы документов и пр.). Кроме того структура данных представлена более наглядно: список таблиц объекта метаданных, список полей и список индексов выводятся в отдельных табличных частях. UPD-2012-08-17. Сделан патч для корректной обработки регламентных заданий, исправлен пункт отображения планов видов расчета, исправлено поведение при переключении типа структуры в корне конфигурации.
P.S. Некоторые работодатели при приеме на работу задают вопрос о количестве физических и виртуальных таблиц для регистров. Неплохо бы знать ответы на эти вопросы, тем более, что это уровень 1С:Профессионал. Если вы хотите не только выучить этот ответ, но и "пощупать" эти таблицы, тогда эта обработка для вас!

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

Наименование Файл Версия Размер Кол. Скачив.
СтруктураХраненияБазыДанных v1.2.epf
.epf 13,15Kb
17.08.12
507
.epf 13,15Kb 507 Скачать
СтруктураХраненияБазыДанных v1.1.epf
.epf 13,03Kb
17.08.12
60
.epf 13,03Kb 60 Скачать

См. также

PowerTools от 1 000

Лучшие комментарии

2. bforce 16.10.2013 17:30
(1) child1983, специально выгрузка не предусматривалась.
Доступна только стандартная возможность вывода табличной части в табличный документ, откуда его можно экспортировать.
+ 1 [ child1983; ]
# Ответить

Комментарии

1. child1983 16.10.2013 16:55
а в обработке предусмотрен вывод в документ(например, сохранение mxl) структуры или только просмотреть можно?
Ответили: (2)
# Ответить
2. bforce 16.10.2013 17:30
(1) child1983, специально выгрузка не предусматривалась.
Доступна только стандартная возможность вывода табличной части в табличный документ, откуда его можно экспортировать.
+ 1 [ child1983; ]
# Ответить
3. Andreynikus 08.11.2013 13:21
Есть ли возможность поиска объекта 1С по имени таблицы СУБД?
Было бы просто отлично.
# Ответить
4. bforce 08.11.2013 15:56
Я использую следующий метод: по двойному клику на корне получаю все таблицы, а дальше по Ctrl + F на столбце Имя таблицы хранения (или Найти из контекстного меню) получаю ту единственную строку.

Если делать это отдельной командой, то все равно так или иначе придется получать полную таблицу.
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл






IE 2016