Семейство department.* открывает REST-доступ к организационной структуре Битрикс24: дереву отделов, их руководителям и вложенности. Вместе с полем UF_DEPARTMENT у сотрудников оно позволяет полностью воспроизвести оргструктуру из внешней системы.
Как устроена оргструктура
Структура компании в Битрикс24 — это дерево отделов. Каждый отдел имеет родителя (кроме корневого), название, порядок сортировки и, опционально, руководителя. Сотрудник привязывается к одному или нескольким отделам через множественное поле UF_DEPARTMENT.
За отделы отвечает скоуп department. Методы семейства:
department.get— список/чтение отделов;department.add— создать отдел;department.update— изменить;department.delete— удалить;department.fields— доступные поля.
PARENT. От него растёт всё дерево.Поля отдела
Набор полей отдела компактный:
| Поле | Смысл |
|---|---|
ID | идентификатор отдела |
NAME | название |
SORT | порядок сортировки |
PARENT | ID вышестоящего отдела |
UF_HEAD | ID руководителя отдела |
Поле UF_HEAD хранит ID пользователя-руководителя. Именно оно определяет, кто в отделе «начальник» — это влияет на маршруты согласований и права руководителя в задачах и CRM.
Чтение структуры: department.get
Без параметров метод вернёт все отделы. Обычно фильтруют по родителю, чтобы получить ветку:
POST /rest/1/xxxx/department.get.json
{"PARENT":1,"SORT":"SORT","ORDER":"ASC"}
Параметры: ID (конкретный отдел), NAME, PARENT, UF_HEAD, а также SORT/ORDER и листание start. Чтобы построить полное дерево, забирают все отделы и восстанавливают иерархию по связке ID → PARENT на своей стороне.
Построение дерева: add и update
Создание отдела требует имени и, как правило, родителя:
POST /rest/1/xxxx/department.add.json
{"NAME":"Отдел продаж","PARENT":1,"UF_HEAD":17,"SORT":100}
Метод вернёт ID нового отдела. При загрузке многоуровневой структуры важен порядок: сначала создаём родителей, получаем их ID, затем — детей с корректным PARENT.
Отделы и сотрудники
Само семейство department.* не возвращает список сотрудников отдела — эта связь хранится на стороне пользователя. Чтобы получить людей отдела, используйте метод user.get:
{"FILTER":{"UF_DEPARTMENT":5,"ACTIVE":true}}
Логика проста:
department.getдаёт дерево иUF_HEADкаждого отдела;user.getс фильтромUF_DEPARTMENT— состав конкретного отдела;- руководитель определяется полем
UF_HEADотдела.
Так связка двух семейств полностью описывает «кто где работает и кто кем руководит».
Сценарии синхронизации
Оргструктура — типовой объект обмена с кадровыми системами и 1С:ЗУП:
- Первичная загрузка. Разворачиваем дерево отделов из учётной системы, соблюдая порядок уровней.
- Поддержание в актуальном виде. При кадровых изменениях правим
UF_HEADи переносим сотрудников между отделами черезuser.update. - Права и маршруты. Корректная структура — основа для автоматических согласований и прав руководителей в задачах и CRM.
Итог
Семейство department.* описывает дерево компании, а состав отделов и руководители раскрываются в связке с user.get и полем UF_DEPARTMENT. При импорте соблюдайте порядок уровней и ведите карту внешних идентификаторов.
Мы настраиваем двустороннюю синхронизацию оргструктуры Битрикс24 с 1С и кадровыми системами: отделы, руководители, перемещения сотрудников — всё поддерживается автоматически и без «висящих» связей. Поможем спроектировать обмен и сопровождать его.
Частые вопросы
Как получить всё дерево отделов?
Вызовите department.get без фильтра по родителю, заберите все отделы (с листанием через start) и восстановите иерархию по связке ID и PARENT на своей стороне.
Где хранится руководитель отдела?
В поле UF_HEAD отдела — это ID пользователя-руководителя. Оно влияет на права руководителя в задачах, CRM и на маршруты согласований.
Как узнать сотрудников отдела?
Само семейство department.* этого не отдаёт. Используйте user.get с фильтром UF_DEPARTMENT равным ID отдела, чтобы получить его состав.
В каком порядке создавать отделы при импорте?
Сверху вниз по уровням: сначала родительские отделы, чтобы получить их ID, затем дочерние с корректным значением PARENT. Иначе ссылка на родителя будет невалидной.
Можно ли отнести сотрудника к нескольким отделам?
Да, UF_DEPARTMENT — множественное поле. Передавайте массив ID отделов при user.add или user.update.
Какой скоуп нужен для работы с отделами?
Скоуп department. Его включают в правах вебхука или приложения; без него методы department.* вернут ошибку доступа.
Как безопасно удалить отдел?
Сначала перенесите сотрудников и дочерние отделы, затем вызывайте department.delete. Иначе связи с людьми и подотделами останутся некорректными.
Есть ли у отдела корневой элемент?
Да, корневой отдел (обычно компания) не имеет родителя — поле PARENT пустое. От него строится всё дерево структуры.
Поможем с настройкой и поддержкой Для разработчиков
Поможем с настройкой, доработкой и поддержкой Для разработчиков.