В Системе есть возможность создания иерархических справочников, в которых иерархия строится с использованием любых, существующих в справочных группах, атрибутов связи. Иерархические справочники позволяют представить данные справочных групп в различных ракурсах, необходимых для бизнес-пользователей. Например, представить расположение оборудование в соответствии с его организационной принадлежностью или с привязкой к регионам страны. Для создания таких справочников в подсистеме Конфигурация данных при регистрации новых справочников используется параметр Представление справочника.
Доступ к настройке представления справочника
Включение данного параметра означает, что при открытии справочника будет отображаться не стандартное линейное представление справочника, а иерархическое, где в дереве отображаются позиции в порядке подчинения иерархии, а не в порядке следования справочных групп. Для иерархических справочников можно выбрать следующее Представление справочника:
Иерархическое – отображение только в виде иерархии, в соответствии с настройкой корневых и дочерних позиций;
Иерархическое с возможностью переключится в стандартное – отображение в виде иерархии, из которого можно переключится в стандартное с помощью кнопки в виде стрелки, расположенной над деревом;
Стандартное с возможностью переключится в иерархическое – стандартное отображение, из которого можно переключится в иерархическое с помощью кнопки в виде стрелки, расположенной над деревом.
Вид справочника в иерархическом и стандартном представлении
Для построения иерархического справочника необходимо:
в поле Группы выбрать справочные группы, позиции которых будут входить в иерархический справочник;
в поле Представление справочника выбрать один из трех вариантов, предполагающий использование иерархии;
в поле Корневые группы иерархии выбрать из выпадающего списка или в диалоге по кнопке Выбрать справочные группы, в которых располагаются корневые позиции иерархий;
для выбранных корневых справочных групп указать Способ получения корневых позиций:
Статический список – список корневых позиций настраивается пользователем вручную;
Формула – список корневых позиций определяется через скрипт Groovy, что позволяет динамически определять список корневых позиций, в зависимости от условий, в том числе, данных о пользователе. Например, можно реализовать определение родительских позиций в зависимости от того, какой организации принадлежит пользователь;
Автоматически, по отсутствию ссылок – в качестве корневых позиций выбираются позиции, у которых отсутствуют ссылки на вышестоящий уровень через указанный набор атрибутов-связи.
Выбор способа получения корневых позиций для иерархического справочника
в поле Атрибуты связи корневых позиций выбрать атрибут связи, определяющий иерархическую связь корневых позиций. Стрелка перед наименованием атрибута определяет направление поиска связи:
стрелка влево - поиск выполняется от дочерних позиций к родительской (обратная связь);
стрелка вправо - поиск выполняется от родительской позиции к дочерним (прямая связь);
раздел карточки справочника Иерархия атрибутов связи предназначен для настройки поиска дочерних позиций – здесь для каждого, используемого в построении иерархии, атрибута связи требуется выбрать направление связи, по которой нужно получать дочерние позиции, а также можно установить фильтр на справочные группы, из которых допускается получать дочерние позиции. Чтобы добавить атрибут связи нужно нажать кнопку Добавить в поле Иерархия атрибутов связи и, в открывшемся диалоге Выбор связи, на вкладках Прямые и Обратные выбрать требуемую связь. Если для атрибута связи указано направление Прямые, то дочерние позиции получают от родительской позиции, если указано направление Обратные, то дочерние позиции получают путем поиска позиций, ссылающихся на родительскую через заданный атрибут связи;
Выбор атрибутов связи для указания дочерний позиций в иерархии
для каждого атрибута связи настроить параметры вывода дочерних позиций:
Настройка иерархии атрибутов связи для дочерних групп иерархии
Группировать дочерние позиции по атрибуту связи– все дочерние позиции будут сгруппированы в виртуальный узел с наименованием атрибута связи и указанием его направления;
Группировать дочерние позиции по справочным группам – все дочерние позиции будут сгруппированы в виртуальные узлы с наименованиями справочных групп. Если для атрибута-связи определена, в том числе, группировка по атрибуту связи, то вначале будет выполнена группировка по наименованию атрибута связи, а затем группировка по наименованию справочных групп. Включение группировки по группам, более чем для одного атрибута связи, расположенных на одном уровне с общим родителем, не допускается;
Получать данные рекурсивно, по настройкам из родительской связи – настройка доступна для атрибута связи только в том случае, если он идентичен родительскому атрибуту-связи по выбранному направлению и стереотипу агрегации. Включение данной настройки означает, что для позиций, полученных через данный атрибут-связи, добавление дочерних позиций выполняется по настройкам, указанным для родительского атрибута-связи;
Фильтр по группам не задан – настройка обеспечивает построение иерархии только по тем справочным группам, из которых должны быть получены позиции.
повторить указание атрибутов связи и настройку параметров вывода дочерних позиций нужное количество раз с учетом фактической последовательности использования связей в иерархии;
в секции Настройка видимости определить роли, группы и учетные записи пользователей, которым разрешено видеть данный справочник.
В справочниках с иерархическим представлением разрешены все виды поиска, создание заявок с использованием стандартного функционала Системы. При создании новых позиций без заявокСистема будет предлагать на первом шаге выбрать характер добавления – корневая позиция, дочерняя позиция, связь с существующей позицией. При добавлении корневой или дочерней позиции нужно в дополнительном диалог выбрать справочную группу, в которой будет размещаться позиция, а при назначении связи – выбрать одну из существующих в справочнике позиций.
Варианты создания позиций в иерархическом справочнике
Изменение иерархии доступно как через карточку позиции, путём изменения значений атрибута связи, так и путём вырезания/вставки элементов иерархии. Изменения по иерархии, выполненные текущим пользователем в иерархии, будут отображены сразу после выполнения изменения. В случае изменения иерархии текущим пользователем через карточку позиции или изменение иерархии другими пользователями, изменения будут доступны после обновления дерева. Если изменился состав подчинённых позиций, то для отображаемой в иерархии позиции будет выведена кнопка «Обновить» для обновления содержимого.