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

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

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

    Parameters

    Returns void

fetch

find

  • Метод OrganisationStructureItem.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

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

    const children = someItem.getChildren();
    

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

    Returns OrganisationStructureItem[]

getParent

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

    const parent = someItem.getParent();
    

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

    Returns OrganisationStructureItem | undefined

isDepartment

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

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

    Returns boolean

isGroup

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

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

    Returns boolean

isPosition

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

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

    Returns boolean

moveAfter

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

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

    someItem.moveAfter();
    

    Returns void

moveBefore

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

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

    someItem.moveBefore();
    

    Returns void

moveToParent

  • Метод OrganisationStructureItem.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