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

0. Никита Коротаев (bforce) 386 10.08.12 12:18 Сейчас в теме
Обработка позволяет увидеть названия таблиц и полей в том виде, в котором с ними работает СУБД.
Будет полезна при конструировании прямых запросов к серверу баз данных и интеграции с другими системами (минуя сервер 1С).

Перейти к публикации

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

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


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

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

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

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


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

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


ЗЫ:
Пробовал на 2х конфигурациях. В одной с режимом совместимости "Версия 8.3.6" пустую строку принимает без ошибок. В другой, где режим совместимости "Не использовать", пустая строка уже не прокатывает.
Оставьте свое сообщение