You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

Схема процесса планирования отпусков в HRlink


Описание процесса работы с отпусками на портале - https://wiki.hr-link.ru/bin/view/Main/Protsessy-v-HRlink/Anons%3A-Soglasovat%D1%8C-grafik-otpuskov-/ 

(warning) сменить шаги местами, обновить описание, нет упоминания про календари, про совместителей (планирование и согласование), про выгрузку актуальных отпусков из 1С в  линк

Общие правила планирования(question)  

  • Подготовка к планированию отпусков в HRlink
    • для использования функционала планирования отпусков необходимо включить его на тенанте через Службу заботы о клиентах (линк или контакты - Телеграм: @podderzhkavsego_bot 
      Почта: help@hr-link.ru) (question) 
    • для планирования отпусков необходимы доступные дни для планирования.  - см. ШАГ 1. Загрузить доступные дни для планирования на год
      • на текущий момент планирование возможно только по основному и дополнительному отпуску. Планировать отпуска по типам доп. отпуска невозможно. (warning)  справочник типов отпусков пока не используется.
      • возможно установить обязательное количество дней, которое необходимо спланировать сотрудникам. В таком случае сотрудникам необязательно распределять все доступные дни для планирования, но потребуется спланировать обязательное количество дней.  Настройка осуществляется через Службу заботы о клиентах (линк или контакты - Телеграм: @podderzhkavsego_bot 
        Почта: help@hr-link.ru) (question) 
    • если для сотрудников применимы региональные календари, то их необходимо предварительно загрузить - см. ШАГ 1.1 Загрузить региональные календарей сотрудников
    • для предоставления возможности сотрудникам планировать отпуска на портале необходимо разрешить планирование  - см. ШАГ 2. Разрешить планирование отпусков на год
  • Планирование отпусков в HRlink
    • Сотрудники могут запланировать отпуска на будущий год с учетом всех правил (question)  - см. ШАГ 3. Сотрудники планируют отпуска в HRlink
      • необходимо распланировать все доступные дни, которые были выгружены на ШАГе 1.
        • если несколько сотрудников, то ...
        • 14 дней...
      • планирование осуществляется с учетом производственного календаря сотрудника. 
      • планирование осуществляется по пользователю, т.е. по физ.лицу. Если пользователь имеет несколько сотрудников, то все сотрудники будут иметь одинаковые периоды отпуска.
    • Руководители могут планировать отпуска за сотрудников и согласовывать отпуска, при необходимости  - см. ШАГ 4. Руководители согласуют отпуска в HRlink
      • согласование отпусков также осуществляется по физ.лицу. Если пользователь имеет несколько сотрудников, то отпуск будет согласован по всем местам работы пользователя.
    • ...
  • Завершение планирования отпусков
    • для того, чтобы сотрудники и руководители не могли вносить изменения в график отпусков, Администратору необходимо завершить планирование  - см. ШАГ 5. Завершить планирование отпусков на год
    • при этом, Кадровику доступны изменения и согласование отпусков в любом периоде, независимо от разрешения планирования.
    • для получения всех спланированных отпусков необходимо выгрузить их  - см. ШАГ 6. Выгрузить спланированные отпуска из HRlink 
  • Работа с отпусками в течении года
    • спланированные отпуска доступны всегда для просмотра на портале
    • Сотрудники могут оформлять перенос отпуска через Заявление в HRlink - подробнее в инструкции Сотрудник подает Заявление
    • при необходимости, возможно загрузить изменения отпусков из внешней системы в HRlink - см. ШАГ 7. Загрузить обновленные периоды запланированных отпусков в HRlink


Шаги процесса


ШАГ 1. Загрузить доступные дни для планирования на год


Создать задачу массовой синхронизации данных

МетодСсылка на документацию OpenAPI

POST https://{host}/api/v1/clients/{clientId}/bulkDataSyncTasks

type = EMPLOYEE_VACATIONS_PLANNING

https://docs.myhrlink.ru/public/openapi/hr-link/#tag/otherDataSync/operation/createBulkDataSyncTask

Дополнительная информация

  • Загрузить дни для планирования может как Администратор, так и Кадровик (Настройщик не может(question) ) нужно ли это указывать ?
    • Пользователь должен иметь право BULK_DATA_SYNC_TASKS_CREATE на уровне пользователя клиента или на уровне активного сотрудника.
  • Информация о доступных днях для планирования необходима для возможности планирования отпусков в HRlink.


Описание переменных

ПеременнаяОписаниеОбязательность

tenantHost

Хост тенанта, на который должен быть выполнен запрос

да

clientId

ИД клиента HRlinkда
externalId

Внешний идентификатор сотрудника.

  • Доступные для планирования дни можно загрузить всем сотрудникам пользователя. Но при планировании будут использованы дни по основному месту работу.
  • Если основное место работы не задано, то будут использовано наибольшее число доступных дней для планирования. 
  • Как задать основное место работы?
да
legalEntityExternalIdВнешний идентификатор юрлица сотрудника.нет
availableVacationsPlanning[]

Массив с данными для планирования. 

  • В массиве можно передать значения для нескольких лет. 
  • В системе будут обновлены только дни указанного года.
нет
planningYearГод, на который будут планироваться отпусканет
basicVacationDayCount

Количество дней основного отпуска, доступных для планирования.

  • Если данные не будут переданы, то они будут записаны как null.
нет
additionalVacationDayCount

Количество дней дополнительного отпуска, доступных для планирования.

  • Если данные не будут переданы, то они будут записаны как null.
нет


Пример запроса
curl --location 'https://{{tenantHost}}/api/v1/clients/{{clientId}}/bulkDataSyncTasks' \
--header 'Impersonated-User-Id: {{clientUserExternalId}}' \
--header 'Impersonated-User-Id-Type: EXTERNAL_ID' \
--data '{
    "type": "EMPLOYEE_VACATIONS_PLANNING",
    "data": [
       {
           "externalId": "{{Внешний ИД сотрудника}}",
           "legalEntityExternalId": "{{Внешний ИД юрлица}}",
           "availableVacationsPlanning": [
              {
               "planningYear": 2026,
               "basicVacationDayCount": 28,
               "additionalVacationDayCount": 3
              }
           ]
       }
    ]
}'


{
    "result": true,
    "bulkDataSyncTask": {
        "id": "{{ИД задачи массовой синхронизации данных}}"
    }
}
 



Опциональный шаг.

Если календари были загружены ранее и регулярно обновляются у сотрудников, то этот шаг можно пропустить.

Описать на отдельной странице. (warning) 

  1. Загрузка календаря.
  2. Назначение календаря сотруднику.

Где используются календари в системе?

ШАГ 2. Разрешить планирование отпусков на год


Установить состояние возможности планирования отпусков

МетодСсылка на документацию OpenAPI

PUT https://{host}/api/v1/clients/{clientId}/vacations/setPlanningState


https://docs.myhrlink.ru/public/openapi/hr-link/#tag/vacationScheduleManage/operation/setPlanningState


Дополнительная информация

  • Разрешить планирование может только Администратор.
    • Пользователь должен иметь право VACATIONS_CHANGE_PLANNING_STATE на уровне пользователя клиента или на уровне активного сотрудника.


Описание переменных

ПеременнаяОписаниеОбязательность

tenantHost

Хост тенанта, на который должен быть выполнен запрос

да

clientId

ИД клиента HRlinkда
planningState

Состояние планирования отпусков в системе HRlink.

Может принимать два состояния:

  • ENABLED - Планирование разрешено.
  • DISABLED - Планирование запрещено.
да
planningYear

Год, на который устанавливается настройка планирования.

  • Допустимо указывать значение только текущего или следующего года.
  • Если год не задан, то по умолчанию, настройка устанавливается на текущий год. 
нет


Пример запроса
curl --request PUT \
--url 'https://{{tenantHost}}/api/v1/clients/{clientId}/vacations/setPlanningState?planningState=ENABLED&planningYear=2026' \
--header 'Impersonated-User-Id: {{clientUserExternalId}}' \
--header 'Impersonated-User-Id-Type: EXTERNAL_ID' \
--header 'master-api-token: master_token_value


{
    "result": true
}
 


ШАГ 3. Сотрудники планируют отпуска в HRlink

Шаг выполняется на портале HRlink. 


Создать или обновить отпуска пользователя клиента

МетодСсылка на документацию OpenAPI

PUT https://{host}/api/v1/clients/{clientId}/users/{clientUserId}/vacations


https://docs.myhrlink.ru/public/openapi/hr-link/#tag/vacationScheduleManage/operation/createOrUpdateVacations


Дополнительная информация:

(question)  описать правила  (question) 


ШАГ 4. Руководители согласуют отпуска в HRlink

Шаг выполняется на портале HRlink. 


Установить состояние утверждения отпуска

МетодСсылка на документацию OpenAPI

PUT https://{host}/api/v1/clients/{clientId}/vacations/{vacationId}/setApprovingState


https://docs.myhrlink.ru/public/openapi/hr-link/#tag/vacationScheduleManage/operation/setVacationApprovingState


Дополнительная информация:

(question)  описать правила планирования (question) 



ШАГ 5. Завершить планирование отпусков на год


Установить состояние возможности планирования отпусков

МетодСсылка на документацию OpenAPI

PUT https://{host}/api/v1/clients/{clientId}/vacations/setPlanningState


https://docs.myhrlink.ru/public/openapi/hr-link/#tag/vacationScheduleManage/operation/setPlanningState


Дополнительная информация

  • Опциональный шаг.
    • Если необходимо в текущем году запретить Сотрудникам и Руководителям изменять отпуска, то требуется выполнить этот шаг.
    • После наступления нового календарного года изменение отпусков будет автоматически недоступно для Сотрудника и Руководителя.
  • Завершить планирование может только Администратор.
    • Пользователь должен иметь право VACATIONS_CHANGE_PLANNING_STATE на уровне пользователя клиента или на уровне активного сотрудника.


Описание переменных

ПеременнаяОписаниеОбязательность

tenantHost

Хост тенанта, на который должен быть выполнен запрос

да

clientId

ИД клиента HRlinkда
planningState

Состояние планирования отпусков в системе HRlink.

Может принимать два состояния:

  • ENABLED - Планирование разрешено.
  • DISABLED - Планирование запрещено.
да
planningYear

Год, на который устанавливается настройка планирования.

  • Допустимо указывать значение только текущего или следующего года.
  • Если год не задан, то по умолчанию, настройка устанавливается на текущий год. 
нет


Пример запроса
curl --request PUT \
--url 'https://{{tenantHost}}/api/v1/clients/{clientId}/vacations/setPlanningState?planningState=DISABLED&planningYear=2026' \
--header 'Impersonated-User-Id: {{clientUserExternalId}}' \
--header 'Impersonated-User-Id-Type: EXTERNAL_ID' \
--header 'master-api-token: master_token_value


{
    "result": true
}
 


ШАГ 6. Выгрузить спланированные отпуска из HRlink 


Получить данные о запланированных отпусках сотрудников

МетодСсылка на документацию OpenAPI

POST https://{host}/api/v1/clients/{clientId}/employees/getPlannedVacationPeriod


https://docs.myhrlink.ru/public/openapi/hr-link/#tag/vacationScheduleGet/operation/getPlannedVacationPeriod


Дополнительная информация

  • Получить спланированные периоды отпусков может как Администратор,  так и Кадровик.
    • Пользователь должен иметь право EMPLOYEE_PLANNED_VACATIONS на уровне пользователя клиента или на уровне активного сотрудника.


Описание переменных

ПеременнаяОписаниеОбязательность

tenantHost

Хост тенанта, на который должен быть выполнен запрос

да

clientId

ИД клиента HRlinkда
vacations{}

Данные для фильтрации периодов планируемых отпусков.

  • Даты начала и конца периода либо заданы обе, либо не заданы совсем.
да
startDateFromНачало периода, в который должно попадать начало запрашиваемого планируемого отпуска.нет
startDateToКонец периода, в который должно попадать начало запрашиваемого планируемого отпусканет
status

Статус запрашиваемых планируемых отпусков сотрудников.

нет
employees[]

Список сотрудников, по которым необходимо получить отпуска.

  • Если массив пуст, то в ответе будут присутствовать все доступные сотрудники, с учетом иных фильтров.
  • Если массив задан, то передано одно из значений ID сотрудника, или внутренний, или внешний.
да

id

ID сотрудника в системе HRlink.нет
externalIdID сотрудника во внешней системе.нет
department[]

Список отделов, по которым необходимо получить отпуска.

  • Если массив пуст, то в ответе будут присутствовать все сотрудники из доступных отделов, с учетом иных фильтров.
  • Если массив задан, то передано одно из значений ID отдела, или внутренний, или внешний.
да

id

ID отдела в системе HRlink.нет
externalIdID отдела клиента во внешней системе.нет
legalEntity[]

Список юрлиц, по которым необходимо получить отпуска.

  • Если массив пуст, то в ответе будут присутствовать все сотрудники из доступных юрлиц, с учетом иных фильтров.
  • Если массив задан, то передано одно из значений ID юрлица, или внутренний, или внешний.
да

id

ID юрлица клиента в системе HRlink.нет
externalIdID юрлица клиента во внешней системе.нет
limit

Количество возвращаемых при запросе элементов.

  • Максимальное значение - 100 (question) 
  • Значение по умолчанию - 10
нет
offsetКоличество элементов, которые нужно пропустить при выборке.нет
withoutDismissedEmployees

Вернуть ответ без уволенных сотрудников?

  • По умолчанию, уволенные сотрудники вернутся в ответе.
нет


Пример запроса
curl --request POST \
--url 'https://{{tenantHost}}/api/v1/clients/{clientId}/employees/getPlannedVacationPeriod' \
--header 'Impersonated-User-Id: {{clientUserExternalId}}' \
--header 'Impersonated-User-Id-Type: EXTERNAL_ID' \
--header 'master-api-token: master_token_value \
--data '{
  "vacations": {
    "startDateFrom": "2026-01-01",
    "startDateTo": "2026-12-01",
    "status": "ALL"
  },
  "employees": [
    {
      "externalId": "{{Внешний ИД сотрудника}}"
    }
  ],
  "department": [
    {
      "externalId": "{{Внешний ИД отдела}}"
    }
  ],
  "legalEntity": [
    {
      "externalId": "{{Внешний ИД юрлица}}"
    }
  ],
  "limit": null,
  "offset": null,
  "withoutDismissedEmployees": true
}'


{
  "result": true,
  "employeePlannedVacationPeriods": [
    {
      "id": "{{Внутренний ИД сотрудника}}",
      "externalId": "{{Внешний ИД сотрудника}}",
      "periods": [
        {
          "vacationType": "Основной",
          "vacationStatus": "Ожидает согласования",
          "dateFrom": "2026-09-15",
          "dateTo": "2026-09-28"
        },
        {
          "vacationType": "Дополнительный",
          "vacationStatus": "Согласовано",
          "dateFrom": "2026-10-01",
          "dateTo": "2026-10-03"
        } 
      ]
    }
  ]
}
 


ШАГ 7. Загрузить обновленные периоды запланированных отпусков в HRlink


Создать задачу массовой синхронизации данных

МетодСсылка на документацию OpenAPI

POST https://{host}/api/v1/clients/{clientId}/bulkDataSyncTasks

type = CLIENT_USER_VACATIONS

https://docs.myhrlink.ru/public/openapi/hr-link/#tag/otherDataSync/operation/createBulkDataSyncTask

Дополнительная информация

  • Отпуска загружаются по физ.лицам, т.е. по пользователям HRlink. Все сотрудники пользователя будут иметь одинаковые периоды отпуска.
  • Загрузить запланированные отпуска может как Администратор, так и Кадровик.
    • Пользователь должен иметь право BULK_DATA_SYNC_TASKS_CREATE и право VACATIONS_CREATE_AND_UPDATE  на уровне пользователя клиента или на уровне активного сотрудника.
  • Загрузить запланированные отпуска возможно на любой год, вне зависимости от настройки разрешения планирования отпусков и наличия доступных дней отпуска у сотрудника.
  • В одной задаче массовой синхронизации возможно загрузить не более 500 пользователей


Описание переменных

ПеременнаяОписаниеОбязательность

tenantHost

Хост тенанта, на который должен быть выполнен запрос

да

clientId

ИД клиента HRlinkда
externalIdИдентификатор пользователя во внешней системе.да
yearГод отпуска.да
withApproval

Являются ли периоды отпуска согласованными. / Согласованы ли периоды отпуска (question) 

  • TRUE - отпуска согласованы
  • FALSE- отпуска не согласованы
  • Если флаг не передан, то по умолчанию считаем как FALSE
нет
vacationPeriods[]

Список данных о планируемых отпусках.

  • Все отпуска относятся к заданному году 'year'.
  • Периоды отпусков не пересекаются. 
  • Год начала отпуска совпадает с годом конца отпуска. 
  • Если массив не задан, то произойдет удаление всех ранее сохранённых отпусков за указанных код.
нет
startDateДата начала отпуска.да
endDateДата окончания отпуска.да
type

Тип отпуска.

  • Может принимать следующие значения:

    • MAIN - Основной отпуск
    • ADDITIONAL - Дополнительный отпуск
да


Пример запроса
curl --request POST \
--url 'https://{{tenantHost}}/api/v1/clients/{{clientId}}/bulkDataSyncTasks' \
--header 'Impersonated-User-Id: {{clientUserExternalId}}' \
--header 'Impersonated-User-Id-Type: EXTERNAL_ID' \
--header 'master-api-token: master_token_value \
--data '{
    "type": "CLIENT_USER_VACATIONS",
    "data": [
       {
           "externalId": "{{Внешний ИД сотрудника}}",
           "year": 2025,
            "withApproval": true,
            "vacationPeriods": [
             {
              "startDate": "2025-07-01",
               "endDate": "2025-07-15",
               "type": "MAIN"
             },
             {
               "startDate": "2025-10-22",
               "endDate": "2025-10-23",
               "type": "ADDITIONAL"
             }
            ]  
       }
    ]
}'


{
    "result": true,
    "bulkDataSyncTask": {
        "id": "{{ИД задачи массовой синхронизации данных}}"
    }
}
 





  • No labels