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