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

10.05.18

Задачи пользователя - Поиск данных

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
СтруктураХраненияБазыДанных v1.3.epf
.epf 14,88Kb ver:1.3
602
602 Скачать (1 SM) Купить за 1 850 руб.
СтруктураХраненияБазыДанных v1.2.epf
.epf 13,15Kb ver:1.2
710
710 Скачать (1 SM) Купить за 1 850 руб.
СтруктураХраненияБазыДанных v1.1.epf
.epf 13,03Kb ver:1.1
68
68 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

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

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

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

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

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

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

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

Наиболее близка по функционалу к публикация автора le_(//infostart.ru/public/128235/). В отличие от нее, данная обработка  содержит наиболее полное дерево метаданных (планы обмена, константы, журналы документов и пр.). Кроме того структура данных представлена более наглядно: список таблиц объекта метаданных, список полей и список индексов выводятся в отдельных табличных частях.  

UPD-2018-01-06 (v1.3). Исправлена ошибка, возникающая в режиме совместимости 8.3.7 и выше (изменилось поведение платформы).

UPD-2012-08-17 (v1.2). Сделан патч для корректной обработки регламентных заданий, исправлен пункт отображения планов видов расчета, исправлено поведение при переключении типа структуры в корне конфигурации.

P.S. Некоторые работодатели при приеме на работу задают вопрос о количестве физических и виртуальных таблиц для регистров. Неплохо бы знать ответы на эти вопросы, тем более, что это уровень 1С:Профессионал. Если вы хотите не только выучить этот ответ, но и "пощупать" эти таблицы, тогда эта обработка для вас!

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    19673    131    70    

133

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

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

15000 руб.

10.11.2023    12895    53    33    

72

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

18000 руб.

06.12.2023    11747    51    8    

80

Поиск данных Системный администратор Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Платные (руб)

Обработки помогут Вам легко и, главное, быстро (в 5 раз и быстрее штатной обработки 1С), выполнить поиск дублирующих данных в Ваших базах 1С на платформах 8.1-8.3. Это позволит уменьшить объем лишней информации в справочниках и документах, планах видов характеристик и др., упростит работу с данными пользователям. А так же можно, одним нажатием, узнать в каких ссылочных объектах есть вообще дубли! Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. А так же обновления Вы получаете бесплатно в течение года с момента приобретения данных обработок! (Обновление от 27.11.2023, версия 6.12)

10800 руб.

14.05.2012    160164    341    253    

574

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    34568    109    152    

75

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    74285    629    45    

88

Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

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

3600 руб.

06.02.2017    32995    145    18    

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

Если делать это отдельной командой, то все равно так или иначе придется получать полную таблицу.
nickstrelets; +1 Ответить
5. yaxinr 57 24.03.17 12:57 Сейчас в теме
это обработки с управляемыми формами, на моей конфигурации не открываются
6. MasterSVS 55 16.09.17 19:38 Сейчас в теме
7. RocKeR_13 1381 14.11.17 17:42 Сейчас в теме
По корню не получает полную структуру: необходимо внести изменения вот сюда:
&НаСервере
Процедура ЗаполнитьТаблицыПоОбъектуНаСервере(знач МетаОбъект, ВидимостьКолонкиМетаданных)
	
	ОбъектыМетаданных = Новый Массив;
	// Патч для некорректно работающих регламентных заданий
	Если Найти(МетаОбъект, "РегламентноеЗадание.") > 0 Тогда
		МетаОбъект = Метаданные.НайтиПоПолномуИмени(МетаОбъект);
	КонецЕсли;
	// Конец патча
	
	СтруктураДанных = ПолучитьСтруктуруХраненияБазыДанных(ОбъектыМетаданных, ТипСтруктуры = 1);
Показать


перед получением структуры добавить проверку на пустую строку:
	Если Не ПустаяСтрока(МетаОбъект) Тогда
		ОбъектыМетаданных.Добавить(МетаОбъект);
	КонецЕсли;
8. bforce 482 25.11.17 20:58 Сейчас в теме
(7)
По корню не получает полную структуру...

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

перед получением структуры добавить проверку на пустую строку:

В описании изменений платформы я не нашел информации об изменении поведения в работе этой функции. То есть, передавая пустую строку в массиве можно получить полную структуру хранения. Предлагаемое изменение кажется необязательным. Расскажите подробнее об условиях использования обработки (платформа, конфигурация), если это не так.
10. bforce 482 10.05.18 23:14 Сейчас в теме
(7) (9), спасибо вам, ребята!
Сделал новую версию.
9. AndyR 18.12.17 10:19 Сейчас в теме
Платформа 8.3.10.2561, по двойному клику на корне ругалось
{ВнешняяОбработка.СтруктураХраненияБазыДанных.Форма.Форма.Форма(104)}: Ошибка при вызове метода контекста (ПолучитьСтруктуруХраненияБазыДанных)
СтруктураДанных = ПолучитьСтруктуруХраненияБазыДанных(ОбъектыМетаданных, ТипСтруктуры = 1);
по причине:
Недопустимое значение параметра (параметр номер '1')
.
Поправил начало заполнения так
&НаСервере
Процедура ЗаполнитьТаблицыПоОбъектуНаСервере(знач МетаОбъект, ВидимостьКолонкиМетаданных)
	
	Если МетаОбъект="" Тогда
		СтруктураДанных = ПолучитьСтруктуруХраненияБазыДанных(, ТипСтруктуры = 1);
	Иначе
		Если Найти(МетаОбъект, "РегламентноеЗадание.") > 0 Тогда
			МетаОбъект = Метаданные.НайтиПоПолномуИмени(МетаОбъект);
		КонецЕсли;
		
		ОбъектыМетаданных = Новый Массив;
		ОбъектыМетаданных.Добавить(МетаОбъект);
		СтруктураДанных = ПолучитьСтруктуруХраненияБазыДанных(ОбъектыМетаданных, ТипСтруктуры = 1);
	КонецЕсли;
...
Показать


В СП про 1й параметр сказано только что он необязательный. Про пустую строку не нашел:
<ОбъектыМетаданных> (необязательный)

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


ЗЫ:
Пробовал на 2х конфигурациях. В одной с режимом совместимости "Версия 8.3.6" пустую строку принимает без ошибок. В другой, где режим совместимости "Не использовать", пустая строка уже не прокатывает.
11. rokhin 147 11.07.18 13:34 Сейчас в теме
Нет возможности найти метаданные по названию таблицы в базе.
12. bforce 482 11.07.18 21:24 Сейчас в теме
(11), нужно по двойному клику на корне вывести весь список метаданных, а дальше воспользоваться стандартными возможностями платформы по поиску в таблице формы.
13. sapervodichka 6950 16.07.19 13:51 Сейчас в теме
дополнительно можно размеры поюзать и таблицы отчетом https://infostart.ru/public/1093355/
14. Anthon 231 31.01.20 08:36 Сейчас в теме
Если нельзя найти никакой информации и выгрузить, то это абсолютно бесполезная херня. Разве что шаблон для написания своей.
15. Tanis 28.05.20 21:54 Сейчас в теме
Добрый вечер!

Обработка только для SQL c postgresql будет работать?

Спасибо!
16. bforce 482 29.05.20 11:29 Сейчас в теме
(15) Добрый!
Функционирование обработки никак не связано с СУБД, так как используется платформенный метод получения таблиц хранения. Поэтому она покажет таблицы хранения любой поддерживаемой СУБД.
17. Tanis 29.05.20 15:10 Сейчас в теме
(16) Ок. Спасибо!. Скачал версию 1.3 надеюсь на 8.3.17 все нормально пойдет.
18. пользователь 21.05.23 09:05
Сообщение было скрыто модератором.
...
Оставьте свое сообщение