gifts2017

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

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

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

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

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

См. также

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

Комментарии

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