humanresources.hcmlink.employee.set
Передать список сотрудников HCM Link
Описание
Метод humanresources.hcmlink.employee.set передает список сотрудников из системы кадрового учета в интеграцию HCM Link.
Метод работает только в контексте авторизации приложения.
Параметры
company
string
обязательный
Код компании в системе кадрового учета.
Получить код можно методом humanresources.hcmlink.company.list
data
array
обязательный
Список сотрудников из системы кадрового учета (подробное описание)
job
object
необязательный
Данные для обновления задания синхронизации (подробное описание).
Передавайте параметр, если метод выполняется в ответ на событие OnHumanResourcesHcmLinkEmployeeListRequested. Идентификатор задания приходит в событии в поле jobId
Элемент массива data
employee
string
обязательный
Код сотрудника в системе кадрового учета
person
string
обязательный
Код физического лица в системе кадрового учета
userId
integer
необязательный
Идентификатор пользователя Битрикс24.
Получить идентификатор можно методом user.get
data
object
обязательный
Данные сотрудника (подробное описание). Объект должен содержать хотя бы одно поле с непустым значением
firstName
string
необязательный
Имя
lastName
string
необязательный
Фамилия
patronymicName
string
необязательный
Отчество
Параметр job
id
integer
обязательный
Идентификатор задания синхронизации.
Приходит в событии OnHumanResourcesHcmLinkEmployeeListRequested в поле jobId
fields
object
обязательный
Новые данные задания синхронизации (подробное описание)
Параметр job.fields
status
string
обязательный
Новый статус задания.
Возможные значения:
IN_PROGRESS— выполняетсяDONE— выполненоCANCELED— отменено
total
integer
необязательный
Общее количество элементов в задании
sent
integer
необязательный
Количество обработанных элементов
data
object
необязательный
Дополнительные данные задания
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"company":"hr-company-001","data":[{"employee":"employee-001","person":"person-001","userId":25,"data":{"firstName":"Иван","lastName":"Петров","patronymicName":"Иванович","position":"Менеджер"}}],"job":{"id":101,"fields":{"status":"DONE","total":1,"sent":1}},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/humanresources.hcmlink.employee.set
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
try {
const response = await $b24.actions.v2.call.make({
method: 'humanresources.hcmlink.employee.set',
params: {
company: 'hr-company-001',
data: [
{
employee: 'employee-001',
person: 'person-001',
userId: 25,
data: {
firstName: 'Иван',
lastName: 'Петров',
patronymicName: 'Иванович',
position: 'Менеджер',
},
},
],
job: {
id: 101,
fields: {
status: 'DONE',
total: 1,
sent: 1,
},
},
},
requestId: Text.getUuidRfc4122()
})
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
console.info(response.getData()!.result)
}
} catch (error) {
console.error(error)
}
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function setHcmLinkEmployees() {
try {
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'humanresources.hcmlink.employee.set',
params: {
company: 'hr-company-001',
data: [
{
employee: 'employee-001',
person: 'person-001',
userId: 25,
data: {
firstName: 'Иван',
lastName: 'Петров',
patronymicName: 'Иванович',
position: 'Менеджер'
}
}
],
job: {
id: 101,
fields: {
status: 'DONE',
total: 1,
sent: 1
}
}
},
requestId: B24Js.Text.getUuidRfc4122()
})
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
console.info(response.getData().result)
} catch (error) {
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', setHcmLinkEmployees)
</script>
try {
$response = $b24Service
->core
->call(
'humanresources.hcmlink.employee.set',
[
'company' => 'hr-company-001',
'data' => [
[
'employee' => 'employee-001',
'person' => 'person-001',
'userId' => 25,
'data' => [
'firstName' => 'Иван',
'lastName' => 'Петров',
'patronymicName' => 'Иванович',
'position' => 'Менеджер',
],
],
],
'job' => [
'id' => 101,
'fields' => [
'status' => 'DONE',
'total' => 1,
'sent' => 1,
],
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error setting employees: ' . $e->getMessage();
}
BX24.callMethod(
'humanresources.hcmlink.employee.set',
{
company: 'hr-company-001',
data: [{ employee: 'employee-001', person: 'person-001', userId: 25, data: { firstName: 'Иван', lastName: 'Петров' } }],
job: { id: 101, fields: { status: 'DONE', total: 1, sent: 1 } }
},
function(result)
{
if (result.error())
{
console.error(result.error(), result.error_description());
}
else
{
console.dir(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'humanresources.hcmlink.employee.set',
[
'company' => 'hr-company-001',
'data' => [
[
'employee' => 'employee-001',
'person' => 'person-001',
'userId' => 25,
'data' => [
'firstName' => 'Иван',
'lastName' => 'Петров',
'patronymicName' => 'Иванович',
'position' => 'Менеджер',
],
],
],
'job' => [
'id' => 101,
'fields' => [
'status' => 'DONE',
'total' => 1,
'sent' => 1,
],
],
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "humanresources.hcmlink.employee.set", b24.Params{
"company": "hr-company-001",
"data": []b24.Params{
{
"employee": "employee-001",
"person": "person-001",
"userId": 25,
"data": b24.Params{
"firstName": "Иван",
"lastName": "Петров",
"patronymicName": "Иванович",
"position": "Менеджер",
},
},
},
"job": b24.Params{
"id": 101,
"fields": b24.Params{
"status": "DONE",
"total": 1,
"sent": 1,
},
},
}, b24.WithIdempotent())
if err != nil {
return fmt.Errorf("humanresources.hcmlink.employee.set: %w", err)
}
var result struct {
Status string `json:"status"`
Errors []string `json:"errors"`
}
if err := json.Unmarshal(res.Result, &result); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println(result.Status, result.Errors)
Ответ
HTTP-статус: 200
{
"result": {
"status": "ok",
"errors": []
},
"time": {
"start": 1739860000.123,
"finish": 1739860000.456,
"duration": 0.333,
"processing": 0.111,
"date_start": "2026-08-06T19:51:02+03:00",
"date_finish": "2026-08-06T19:51:02+03:00"
}
}
Возвращаемые данные
result
object
Результат обработки списка сотрудников
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 200
{
"result": {
"status": "error",
"errors": [
"Parameter 'data' must be a non empty array "
]
}
}
| Код | Описание | Значение |
|---|---|---|
0 |
Operation failed | Не удалось обновить задание синхронизации, переданное в параметре job |
| — | Parameter 'data' must be a non empty array | Не передан список сотрудников |
| — | Item #... should have not empty 'employee', 'person', 'data' | В элементе списка нет обязательных полей |
ACCESS_DENIED |
Access denied! Access denied. | Пользователь не является администратором |
WRONG_AUTH_TYPE |
Application context required | Метод вызван не в контексте приложения |

