humanresources.node.search
Найти отделы
Описание
Метод относится к REST 3.0. Особенности вызова и формат ответа новой версии API описаны в обзоре REST 3.0.
Метод humanresources.node.search ищет отделы или команды по названию.
Параметры
type
string
обязательный
Тип элемента структуры.
Возможные значения:
DEPARTMENT— отделTEAM— команда
name
string
обязательный
Строка поиска по части названия отдела или команды
parentId
integer
необязательный
Идентификатор родительского отдела для ограничения поиска.
Идентификатор можно получить методом humanresources.node.list
pagination
object
необязательный
Параметр постраничной навигации.
Для метода используется limit — количество записей на страницу. По умолчанию 50, максимум 200
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"type":"DEPARTMENT","name":"Продажи","parentId":1,"pagination":{"limit":20}}' \
https://**put_your_bitrix24_address**/rest/api/**put_your_user_id_here**/**put_your_webhook_here**/humanresources.node.search
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"type":"DEPARTMENT","name":"Продажи","parentId":1,"pagination":{"limit":20},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/api/humanresources.node.search
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame, ISODate } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
// Shape of the payload returned in result (match the "response handling" section of the page)
type NodeSearchResult = {
items: NodeItem[]
}
type NodeItem = {
id: number
name: string
type: string
structureId: number
parentId: number | null
description: string | null
accessCode: string
userCount: number
colorName: string | null
xmlId: string | null
createdAt: ISODate | null
updatedAt: ISODate | null
}
try {
const response = await $b24.actions.v3.call.make<NodeSearchResult>({
method: 'humanresources.node.search',
params: {
type: 'DEPARTMENT',
name: 'Sales',
parentId: 1,
pagination: {
limit: 20,
},
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info('Found departments:', result.items.length, result.items)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function searchNodes() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v3.call.make({
method: 'humanresources.node.search',
params: {
type: 'DEPARTMENT',
name: 'Sales',
parentId: 1,
pagination: {
limit: 20,
},
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info('Found departments:', result.items.length, result.items)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', searchNodes)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
pagination = {
"limit": 20,
}
try:
bitrix_response = client.humanresources.node.search(
type='DEPARTMENT',
name='Продажи',
parent_id=1,
pagination=pagination,
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
try {
$response = $b24Service
->core
->call(
'humanresources.node.search',
[
'type' => 'DEPARTMENT',
'name' => 'Продажи',
'parentId' => 1,
'pagination' => [
'limit' => 20,
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error searching departments: ' . $e->getMessage();
}
BX24.callMethod(
'humanresources.node.search',
{
type: 'DEPARTMENT',
name: 'Продажи',
parentId: 1,
pagination: {
limit: 20
}
},
function(result){
console.info(result.data());
console.log(result);
}
);
require_once('crest.php');
$result = CRest::call(
'humanresources.node.search',
[
'type' => 'DEPARTMENT',
'name' => 'Продажи',
'parentId' => 1,
'pagination' => [
'limit' => 20
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "humanresources.node.search", b24.Params{
"type": "DEPARTMENT",
"name": "Продажи",
"parentId": 1,
"pagination": b24.Params{
"limit": 20,
},
})
if err != nil {
return fmt.Errorf("humanresources.node.search: %w", err)
}
// Метод заворачивает ответ в объект с ключом "items".
raw, ok := b24.Unwrap(res.Result, "items")
if !ok {
return fmt.Errorf("в ответе нет ключа items")
}
var items []struct {
ID b24.ID `json:"id"`
Name string `json:"name"`
Type string `json:"type"`
StructureID b24.ID `json:"structureId"`
ParentID b24.ID `json:"parentId"`
Description string `json:"description"`
}
if err := json.Unmarshal(raw, &items); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
for _, it := range items {
fmt.Println(it.ID)
}
Ответ
HTTP-статус: 200
{
"result": {
"items": [
{
"id": 12,
"name": "Продажи B2B",
"type": "DEPARTMENT",
"structureId": 1,
"parentId": 1,
"description": "Работа с корпоративными клиентами",
"accessCode": "DR12",
"userCount": 9,
"colorName": null,
"xmlId": null,
"createdAt": "2026-05-20T10:15:00+03:00",
"updatedAt": "2026-06-01T16:30:00+03:00"
}
]
},
"time": {
"start": 1780399800,
"finish": 1780399800.314519,
"duration": 0.31451892852783203,
"processing": 0.2811400890350342,
"date_start": "2026-06-02T14:30:00+03:00",
"date_finish": "2026-06-02T14:30:00+03:00",
"operating_reset_at": 1780400400,
"operating": 0
}
}
Возвращаемые данные
result
object
Объект с данными ответа
items
array
Массив найденных отделов и команд
items[]
object
Объект найденного отдела или команды
id
integer
Идентификатор отдела
name
string
Название отдела
type
string
Тип элемента структуры
structureId
integer
Идентификатор структуры компании
parentId
integer
Идентификатор родительского отдела
description
string
Описание отдела
accessCode
string
Код доступа отдела
userCount
integer
Количество пользователей в отделе
colorName
string
Цвет команды, если он задан
xmlId
string
Внешний идентификатор отдела
createdAt
datetime
Дата и время создания отдела
updatedAt
datetime
Дата и время последнего обновления отдела
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": {
"code": "BITRIX_REST_V3_EXCEPTION_VALIDATION_REQUESTVALIDATIONEXCEPTION",
"message": "Ошибка при валидации объекта запроса",
"validation": [
{
"message": "Обязательное поле `name` не указано",
"field": "name"
}
]
}
}
| Код | Описание | Значение |
|---|---|---|
Поле |
Описание ошибки | Как исправить |
type name |
Обязательное поле #FIELD# не указано |
Добавьте указанное поле в тело запроса |
FIELD# |
В поле #FIELD# требуется тип данных #TYPE# для такого запроса |
Убедитесь, что передаваемое значение нужного типа |
type |
Передано недопустимое значение типа отдела | Используйте DEPARTMENT для отдела или TEAM для команды |

