Type parameters
Hierarchy
- BaseItem<OrganisationStructureData>
- ItemRef<OrganisationStructureItem>
-
OrganisationStructureItemRef
- OrganisationStructureItem
Properties
Readonly code
Код приложения цели ссылки (код приложения).
Readonly data
Значения полей объекта.
Readonly fields
Описание полей объекта.
Readonly id
Идентификатор цели ссылки.
Readonly namespace
Пространство имен цели ссылки (код раздела приложения).
Methods
addChild
-
Метод позволяет добавить дочерний элемент для текущего элемента.
Parameters
-
item: OrganisationStructureItem
Добавляемый элемент оргструктуры.
someItem.addChild(item);
Returns void
-
fetch
-
Запрос полных данных объекта-ссылки.
Returns Promise<OrganisationStructureItem>
find
-
Метод позволяет организовать поиск на поддереве элементов, где корень — текущий элемент.
Будет возвращен первый удовлетворяющий предикату элемент или
undefined
, если таких элементов нет.Parameters
-
predicate: function
Предикат для поиска на поддереве элементов.
const item = tree.getRoot().find(i => i.data.name === 'Менеджеры' && i.data.type === OrganisationStructureItemType.Group); if (item === undefined) { // Элемент не найден }
-
Parameters
Returns boolean
-
Returns OrganisationStructureItem | undefined
-
getChildren
-
Метод позволяет получить дочерние элементы для текущего элемента.
const children = someItem.getChildren();
В случае если элемент не имеет дочерних элементов, метод вернет пустой массив.
Returns OrganisationStructureItem[]
getParent
-
Метод позволяет получить родительский элемент для текущего элемента.
const parent = someItem.getParent();
В случае если элемент не имеет родителя, метод вернет значение undefined.
Returns OrganisationStructureItem | undefined
isDepartment
-
Метод возвращает
true
, если элемент является отделом, иначе —false
.const item = tree.getRoot().find(i => i.data.name === 'Менеджеры'); if (item && item.isDepartment()) { // item является отделом }
Returns boolean
isGroup
-
Метод возвращает
true
, если элемент является группой, иначе —false
.const item = tree.getRoot().find(i => i.data.name === 'Менеджеры'); if (item && item.isGroup()) { // item является группой }
Returns boolean
isPosition
-
Метод возвращает
true
, если элемент является должностью, иначе —false
.const item = tree.getRoot().find(i => i.data.name === 'Менеджеры'); if (item && item.isPosition()) { // item является должностью }
Returns boolean
moveAfter
-
Метод позволяет переместить элемент на одну позицию вправо на дереве оргструктуры.
Перемещение происходит среди дочерних элементов родителя данного элемента, т. е. на одном уровне организационной структуры. Метод влияет только на визуальное представление организационной структуры на странице ее редактирования.
someItem.moveAfter();
Returns void
moveBefore
-
Метод позволяет переместить элемент на одну позицию влево на дереве оргструктуры.
Перемещение происходит среди дочерних элементов родителя данного элемента, т.е. на одном уровне организационной структуры. Метод влияет только на визуальное представление организационной структуры на странице ее редактирования.
someItem.moveBefore();
Returns void
moveToParent
-
Метод позволяет сделать текущий элемент дочерним для заданного элемента.
Parameters
-
parent: OrganisationStructureItem
Новый родитель элемента.
someItem.moveToParent(newParent);
Returns void
-
normalize
-
Удаление дублирующихся данных в массивах.
Выполнить удаление дубликатов в полях, в которых хранятся массивы ссылок на объекты системы (пользователи, файлы, элементы приложений, документы).
Этот метод, например, можно вызвать после массового изменения данных в объекте.
const app1 = await Context.data.app1.fetch(); const app2 = await Context.data.app2.fetch(); app1.data.executors.push(app2.data.executors); app1.normalize(); // Далее перебираем элементы нового массива app1.data.executors.forEach( ... );
Returns void
removeChild
-
Метод позволяет удалить один или несколько дочерних элементов текущего элемента.
Parameters
-
item: OrganisationStructureItem | OrganisationStructureItem[]
Удаляемые элементы оргструктуры.
someItem.removeChild(item);
Returns void
-
Элемент организационной структуры
Представляет собой один из элементов иерархии организационной структуры: должность, отдел или группу.
Тип не имеет конструктора. Создать новый элемент можно с помощью метода OrganisationStructure.createItem:
const item = System.organisationStructure.createItem('Директор по развитию', OrganisationStructureItemType.Position);
Добавить вновь созданный элемент в существующую организационную структуру (к заданному родителю) можно с помощью метода OrganisationStructureItem.addChild.
После внесения изменений в организационную структуру ее необходимо сохранять с помощью метода OrganisationStructure.save.
const tree = await System.organisationStructure.fetchTree(); tree.getRoot().addChild(item); const errs = await System.organisationStructure.save(tree); if (errs.length === 0) { Context.data.debug = "Успешно сохранено"; }