bdd2

Вывод структуры объекта (реквизитов с описанием типов) в таблицу

Опубликовал Сергей Кирпо (Sardukar) в раздел Обработки - Универсальные обработки

Иногда в ТЗ необходимо отразить структуру типовых объектов с указанием имен и типов. Кто это делал знает, какая это нудная работа. Эта обработка позволяет сделать процесс написания ТЗ более приятным.
Выбираете объект (если нечего выбирать, создайте объект в БД), нажимаете "Выполнить" и получаете таблицу, которую можно копировать в ТЗ. На составные типы не заморачивался. Там придется расшифровывать классы объектов ручками.

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

Наименование Файл Версия Размер
ВыводСтруктурыОбъекта.epf
.epf 8,64Kb
18.08.14
12
.epf 8,64Kb 12 Скачать

См. также

PowerTools от 1 000
Добавить вознаграждение
Комментарии
1. Константин Юрин (kostyaomsk) 65 19.08.14 10:11 Сейчас в теме
Хорошая идея, но нужно заметить что когда требуется сложный перенос допустим документов с кучей табличных частей и такими же сложными подчиненными элементами справочников писать обработки, используя ручное (или с помощью обработки автора полученным автоматическим) описанием крайне проблематично. Тут используется конвертация данных.
А вот просто для больших таблиц интересное решение.
2. юрий гулидов (gull22) 80 25.08.14 15:57 Сейчас в теме
Спасибо автору за труд, плюс.
3. q_i 302 23.03.16 19:56 Сейчас в теме
Мой вариант функции ПолучитьРазвернутыйТипРеквизита():
Функция ПолучитьРазвернутыйТипРеквизита(ТипР)
	ТипРеквизита = "";
	Для Каждого ТекТип Из ТипР.Типы() Цикл
		СтрТекТип = Строка(ТекТип);
		Если Справочники.ТипВсеСсылки().СодержитТип(ТекТип) Тогда
			СтрТекТип = "Справочник " + """" + ТекТип + """";
		ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТекТип) Тогда
			СтрТекТип = "Документ " + """" + ТекТип + """";	
		ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТекТип) Тогда
			СтрТекТип = "Перечисление " + """" + ТекТип + """";
			МетаПеречисление = Метаданные.НайтиПоТипу(ТекТип);
			СтрТекТип = СтрТекТип + " (значения: ";
			Первый = Истина;
			Для Каждого ЗначП Из МетаПеречисление.ЗначенияПеречисления Цикл
				СтрТекТип = СтрТекТип + ?(Первый, "", ", ") + ЗначП.Имя;
				Первый = Ложь;
			КонецЦикла; 
			СтрТекТип = СтрТекТип + ")";
		ИначеЕсли ПланыВидовХарактеристик.ТипВсеСсылки().СодержитТип(ТекТип) Тогда
			СтрТекТип = "План видов характеристик " + """" + ТекТип + """";
		ИначеЕсли ПланыСчетов.ТипВсеСсылки().СодержитТип(ТекТип) Тогда
			СтрТекТип = "План счетов " + """" + ТекТип + """";
		ИначеЕсли ПланыВидовРасчета.ТипВсеСсылки().СодержитТип(ТекТип) Тогда
			СтрТекТип = "План видов расчетов " + """" + ТекТип + """";
		ИначеЕсли ТекТип = Тип("Строка") Тогда
			СтрТекТип = "Строка(" + ?(ТипР.КвалификаторыСтроки.Длина = 0, "неогр.", ТипР.КвалификаторыСтроки.Длина) + ")";
		ИначеЕсли ТекТип = Тип("Число") Тогда
			СтрТекТип = "Число(" + ТипР.КвалификаторыЧисла.Разрядность + ", " + ТипР.КвалификаторыЧисла.РазрядностьДробнойЧасти + ")" 
						+ ?(ТипР.КвалификаторыЧисла.ДопустимыйЗнак = ДопустимыйЗнак.Неотрицательный, " неотриц.", "");
		ИначеЕсли ТекТип = Тип("Дата") Тогда
			СтрТекТип = "Дата (" + ТипР.КвалификаторыДаты.ЧастиДаты + ")";
		КонецЕсли;		
		
		ТипРеквизита = ТипРеквизита + ?(ПустаяСтрока(ТипРеквизита), "", Символы.ПС) + СтрТекТип;
		
	КонецЦикла; 
	
	Возврат  ТипРеквизита;
КонецФункции;
...Показать Скрыть