Представляет собой один из элементов иерархии организационной структуры: должность, отдел или группу.

Тип не имеет конструктора. Создать новый элемент можно с помощью метода 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 = "Успешно сохранено";
}

Type parameters

Hierarchy

Properties

Readonly code

code: string

Код приложения цели ссылки (код приложения).

Readonly data

data: Based<Partial<OrganisationStructureData>>

Значения полей объекта.

Readonly fields

fields: Readonly<object>

Описание полей объекта.

Readonly id

id: string

Идентификатор цели ссылки.

Readonly namespace

namespace: string

Пространство имен цели ссылки (код раздела приложения).

Methods

addChild

  • Метод позволяет добавить дочерний элемент для текущего элемента.

    Parameters

    Returns void

fetch

find

  • Метод позволяет организовать поиск на поддереве элементов, где корень — текущий элемент.

    Будет возвращен первый удовлетворяющий предикату элемент или undefined, если таких элементов нет.

    Parameters

    • predicate: function

      Предикат для поиска на поддереве элементов.

      const item = tree.getRoot().find(i => i.data.name === 'Менеджеры' && i.data.type === OrganisationStructureItemType.Group);
      if (item === undefined) {
          // Элемент не найден
      }
      

    Returns OrganisationStructureItem | undefined

getChildren

  • Метод позволяет получить дочерние элементы для текущего элемента.

    const children = someItem.getChildren();
    

    В случае если элемент не имеет дочерних элементов, метод вернет пустой массив.

    Returns OrganisationStructureItem[]

getParent

  • Метод позволяет получить родительский элемент для текущего элемента.

    const parent = someItem.getParent();
    

    В случае если элемент не имеет родителя, метод вернет значение undefined.

    Returns OrganisationStructureItem | undefined

isDepartment

  • isDepartment(): boolean
  • Метод возвращает true, если элемент является отделом, иначе — false.

    const item = tree.getRoot().find(i => i.data.name === 'Менеджеры');
    if (item && item.isDepartment()) {
        // item является отделом
    }
    

    Returns boolean

isGroup

  • isGroup(): boolean
  • Метод возвращает true, если элемент является группой, иначе — false.

    const item = tree.getRoot().find(i => i.data.name === 'Менеджеры');
    if (item && item.isGroup()) {
        // item является группой
    }
    

    Returns boolean

isPosition

  • isPosition(): boolean
  • Метод возвращает true, если элемент является должностью, иначе — false.

    const item = tree.getRoot().find(i => i.data.name === 'Менеджеры');
    if (item && item.isPosition()) {
        // item является должностью
    }
    

    Returns boolean

moveAfter

  • moveAfter(): void
  • Метод позволяет переместить элемент на одну позицию вправо на дереве оргструктуры.

    Перемещение происходит среди дочерних элементов родителя данного элемента, т. е. на одном уровне организационной структуры. Метод влияет только на визуальное представление организационной структуры на странице ее редактирования.

    someItem.moveAfter();
    

    Returns void

moveBefore

  • moveBefore(): void
  • Метод позволяет переместить элемент на одну позицию влево на дереве оргструктуры.

    Перемещение происходит среди дочерних элементов родителя данного элемента, т.е. на одном уровне организационной структуры. Метод влияет только на визуальное представление организационной структуры на странице ее редактирования.

    someItem.moveBefore();
    

    Returns void

moveToParent

  • Метод позволяет сделать текущий элемент дочерним для заданного элемента.

    Parameters

    Returns void

normalize

  • normalize(): void
  • Удаление дублирующихся данных в массивах.

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

    Этот метод, например, можно вызвать после массового изменения данных в объекте.

    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

    Returns void