Форма выбора объекта(ов) метаданных и внешних обработок

Публикация № 597234

Программирование - Инструментарий

объекты метаданных преобразование дерева значений в таблицу значений

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

Данная обработка выводит список объектов метаданных и внешних обработок. Для этого необходимо вызвать экспортную функцию Открыть() этой обработки.

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

//  СписокИсключенныхКлассовМетаданных	 - 	 Массив - массив наименований классов, которые нужно исключить 
//  СписокИсключенныхОбъектовКласса		 - 	 ТаблицаЗначений - таблица объектов класса, которые не нужно выводить
											//Колонки:
											//- "Объект" - имя исключаемого объекта
											//- "КлассОбъекта" - класс, которому принадлежит объект (пр., "Справочники")
// Возвращаемое значение:
//   -   Строка - ПолноеИмя() выбронного объекта
//	 -   Массив - массив с ПолноеИмя() выбранных объектов
//   -   Строка - код внешней обработки в формате "&АдресВнешнейОбработки_<код элемента Справочник.ВнешниеОбработки>"
Функция Открыть(	Знач ПоказатьВнешниеОбработки=Ложь,
					Знач МножественныйВыбор=Ложь, //Эксопрт
					Знач ИмяСиноним = "ИмяСиноним",
					Знач ОтображатьКоличествоДочернихЭлементов=Истина,
					Знач СписокДобавляемыхКлассовМетаданных=Неопределено,  //ТаблицаЗначений
					Знач СписокИсключенныхКлассовМетаданных=Неопределено,   //массив
					Знач СписокИсключенныхОбъектовКласса=Неопределено  //ТаблицаЗначений
				) Экспорт 

Для изменения данных, выводимых по умолчанию, необходимо произвести изменения в следующей процедуре:

Процедура  ПолучитьСписокВыводимыхКлассовМетаданных()

Где можно изменить:

- отображаемый текст класса: пр., "Отчеты" U94;; "Отчеты предприятия"

- картинку класса

- картинку объектов класса

- объекты, которые не будут отображаться, например, справочники и обработки технического (системного) характера

При вызове формы выбора объектов  вышеуказанной функцией Открыть() можно изменять состав списка метаданных, а также их картинки.

Вывод внешних обработок реализован для случая, когда доступ реализован через объект "Справочники". Для других случаев следует переписать процедуру

Процедура ДобавлениеВнешнихОбработок(НовыйКласс, Знач МассивИсключаемыхОбъектовКласса)

В обработке реализована удобный и быстрый поиск как по полю Имя, так и Синоним. При этом для составных имен и синонимов можно искать путем ввода через пробел части наименования в следующем виде: "тех асп" найдет, например, "технологический паспорт".

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

- разбиение строки на подстроки 

// Функция "расщепляет" строку на подстроки, используя заданный 
//		разделитель. Разделитель может иметь любую длину. 
//		Если в качестве разделителя задан пробел, рядом стоящие пробелы 
//		считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр
//		игнорируются.
//
//	Параметры: 
//		Стр - 			строка, которую необходимо разложить на подстроки. 
//						Параметр передается по значению.
//		Разделитель - 	строка-разделитель, по умолчанию - запятая.
//
//
//	Возвращаемое значение:
//		массив значений, элементы которого - подстроки
//
Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") Экспорт

В обработку "МодульРаботыСТаблицаДеревоЗначений" включены :

- функция преобразования дерева значений в таблицу значений

// Функция - Преобразовать дерево значений в таблицу значений
//
// Параметры:
//  Дерево	 - 	 ДеревоЗначений, которое нужно преобразовать в ТаблицуЗначений 
//  Таблица	 - 	 ТаблицаЗначений, структура которой будет использована для преобразования 
//  УИД		 - 	 УникальныйИдентификатор для связки с деревом) 
// 
// Возвращаемое значение:
//   - ТаблицаЗначений с колонками как у ДереваЗначений или Таблицы
//
Функция ПреобразоватьДеревоЗначенийВТаблицуЗначений(Знач Дерево, Таблица = Неопределено, Знач УИД="КорневойУровень") Экспорт

- функция обратного преобразования таблицы значений в дерево значений

// Функция - Преобразовать таблицу значений в дерево значений
// ! Таблица должна содержать уникальный идентификатор связки групп с дочерними элементами
// в виде полей "УИДРодителя" и "УИД"
// Параметры:
//  Таблица	 - 	 ТаблицаЗначений, которую нужно преобразовать в ДеревоЗначений 
//  Дерево	 - 	 ДеревоЗначений, структура которой будет использоваться для преобразования 
//  УИД		 - 	 УникальныйИдентификатор для связки с деревом 
// 
// Возвращаемое значение:
//   -  ДеревоЗначений с колонками как у ТаблицыЗначений
//
Функция ПреобразоватьТаблицуЗначенийВДеревоЗначений(Знач Таблица, Дерево=Неопределено, Знач УИД="КорневойУровень")  Экспорт

- процедура удаления пустых папок (групп) дерева значений

// Процедура - Удалить пустые группы дерева значений
// ! ДеревоЗначений должно содержать колонку "этоГруппа"
// Параметры:
//  Дерево										 - 	 ДеревоЗначений, пустые группы в которой нужно удалить 
//  ОтображатьКоличествоЭлементовГруппы			 - 	 в колонке, указанной в параметре ИмяКолонкиДляВыводаКоличестваЭлементовГруппы, 
//														будет отображаться количество дочерних элементов в формате "(<количество>)" 
//  ИмяКолонкиДляВыводаКоличестваЭлементовГруппы - 	 наименование колонки,  в которой нужно выводить количество дочерних элементов
//
Процедура УдалитьПустыеГруппыДереваЗначений(Дерево, Знач ОтображатьКоличествоЭлементовГруппы=Ложь, Знач ИмяКолонкиДляВыводаКоличестваЭлементовГруппы="") Экспорт

- процедура изменения флага выбора дочерних элементов группы

Процедура ИзменитьФлажокДочернихЭлементовДерева(СтрокаДерева, Знач Флажок) Экспорт

Содержимое архива:

- внешняя обработка "ФормаВыбораОбъектаМетаданных.epf"

- внешняя обработка "МодульРаботыСТаблицаДеревоЗначений.epf"

Реализовано на обычной форме!

1

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

Наименование Файл Версия Размер
формаВыбораобъектаМетаданных
.rar 13,31Kb
13.03.17
2
.rar 13,31Kb 2 Скачать

См. также

Специальные предложения

Избранное Подписка Сортировка: Древо
В этой теме еще нет сообщений.
Оставьте свое сообщение