Получить рабочий график timeman.schedule.get
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
Scope:
timemanКто может выполнять метод: любой пользователь
Метод timeman.schedule.get получает рабочий график по идентификатору. Если графика с указанным идентификатором не существует — вернет пустой массив.
Параметры метода
|
Название |
Описание |
|
id |
Идентификатор графика. Узнать идентификатор графика можно в списке графиков на странице Сотрудники > Время и отчеты > Рабочие графики |
Примеры кода
Как использовать примеры в документации
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"id":1}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/timeman.schedule.get
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"id":1,"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/timeman.schedule.get
// 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 ScheduleGetResult = {
ID: number
NAME: string
SCHEDULE_TYPE: string
REPORT_PERIOD: string
REPORT_PERIOD_OPTIONS: {
START_WEEK_DAY: number
}
CALENDAR_ID: number
ALLOWED_DEVICES: {
browser: boolean
}
DELETED: string
IS_FOR_ALL_USERS: boolean
WORKTIME_RESTRICTIONS: string[]
CONTROLLED_ACTIONS: number
UPDATED_BY: number
DELETED_BY: number
DELETED_AT: string
CREATED_BY: number
CREATED_AT: ISODate
SHIFTS: {
ID: number
NAME: string
BREAK_DURATION: number
WORK_TIME_START: number
WORK_TIME_END: number
WORK_DAYS: string
SCHEDULE_ID: number
DELETED: boolean
}[]
CALENDAR: {
ID: number
NAME: string
PARENT_CALENDAR_ID: number
SYSTEM_CODE: string
EXCLUSIONS: string[]
}
SCHEDULE_VIOLATION_RULES: {
ID: number
SCHEDULE_ID: number
ENTITY_CODE: string
MAX_EXACT_START: number
MIN_EXACT_END: number
MAX_OFFSET_START: number
MIN_OFFSET_END: number
RELATIVE_START_FROM: number
RELATIVE_START_TO: number
RELATIVE_END_FROM: number
RELATIVE_END_TO: number
MIN_DAY_DURATION: number
MAX_ALLOWED_TO_EDIT_WORK_TIME: number
MAX_WORK_TIME_LACK_FOR_PERIOD: number
PERIOD_TIME_LACK_AGENT_ID: number
MAX_SHIFT_START_DELAY: number
MISSED_SHIFT_START: number
USERS_TO_NOTIFY: {
FIXED_START_END: string[]
FIXED_PER_RECORD: string[]
FIXED_EDIT_WORKTIME: string[]
FIXED_PERIODIC: string[]
SHIFT_DELAY: string[]
SHIFT_MISSED_START: string[]
}
}
}
try {
const response = await $b24.actions.v2.call.make<ScheduleGetResult>({
method: 'timeman.schedule.get',
params: {
id: 1,
},
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('Schedule:', result.ID, result.NAME, result.SCHEDULE_TYPE)
}
} 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 getSchedule() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'timeman.schedule.get',
params: {
id: 1,
},
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('Schedule:', result.ID, result.NAME, result.SCHEDULE_TYPE)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', getSchedule)
</script>
try {
$response = $b24Service
->core
->call(
'timeman.schedule.get',
[
'id' => 1
]
);
$result = $response
->getResponseData()
->getResult();
if ($result->error()) {
error_log($result->error());
echo 'Error: ' . $result->error();
} else {
var_dump($result->data());
if ($result->more()) {
$result->next();
}
}
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error getting schedule: ' . $e->getMessage();
}
BX24.callMethod(
"timeman.schedule.get",
{
id: 1
},
function(result)
{
if(result.error())
console.error(result.error());
else
{
console.dir(result.data());
if(result.more())
result.next();
}
}
);
require_once('crest.php');
$result = CRest::call(
'timeman.schedule.get',
[
'id' => 1
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "timeman.schedule.get", b24.Params{
"id": 1,
}, b24.WithIdempotent())
if err != nil {
return fmt.Errorf("timeman.schedule.get: %w", err)
}
var item struct {
ID b24.ID `json:"ID"`
Name string `json:"NAME"`
ScheduleType string `json:"SCHEDULE_TYPE"`
ReportPeriod string `json:"REPORT_PERIOD"`
CalendarID b24.ID `json:"CALENDAR_ID"`
Deleted string `json:"DELETED"`
}
if err := json.Unmarshal(res.Result, &item); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println(item.ID, item.Name)
Обработка ответа
HTTP-статус: 200
{
"result": {
"ID": 1,
"NAME": "Для всех сотрудников",
"SCHEDULE_TYPE": "FIXED",
"REPORT_PERIOD": "MONTH",
"REPORT_PERIOD_OPTIONS": {
"START_WEEK_DAY": 0
},
"CALENDAR_ID": 1,
"ALLOWED_DEVICES": {
"browser": true
},
"DELETED": "0",
"IS_FOR_ALL_USERS": true,
"WORKTIME_RESTRICTIONS": [
"[]"
],
"CONTROLLED_ACTIONS": 3,
"UPDATED_BY": 503,
"DELETED_BY": 0,
"DELETED_AT": "",
"CREATED_BY": 0,
"CREATED_AT": "2019-09-19T21:22:22+03:00",
"SHIFTS": [
{
"ID": 1,
"NAME": "",
"BREAK_DURATION": 3600,
"WORK_TIME_START": 28800,
"WORK_TIME_END": 61200,
"WORK_DAYS": "12345",
"SCHEDULE_ID": 1,
"DELETED": false
}
],
"CALENDAR": {
"ID": 1,
"NAME": "",
"PARENT_CALENDAR_ID": 0,
"SYSTEM_CODE": "",
"EXCLUSIONS": []
},
"SCHEDULE_VIOLATION_RULES": {
"ID": 1,
"SCHEDULE_ID": 1,
"ENTITY_CODE": "UA",
"MAX_EXACT_START": 28859,
"MIN_EXACT_END": 61200,
"MAX_OFFSET_START": -1,
"MIN_OFFSET_END": -1,
"RELATIVE_START_FROM": -1,
"RELATIVE_START_TO": -1,
"RELATIVE_END_FROM": -1,
"RELATIVE_END_TO": -1,
"MIN_DAY_DURATION": 28800,
"MAX_ALLOWED_TO_EDIT_WORK_TIME": 300,
"MAX_WORK_TIME_LACK_FOR_PERIOD": 3600,
"PERIOD_TIME_LACK_AGENT_ID": 309429,
"MAX_SHIFT_START_DELAY": -1,
"MISSED_SHIFT_START": 0,
"USERS_TO_NOTIFY": {
"FIXED_START_END": [
"U503"
],
"FIXED_PER_RECORD": [
"U503"
],
"FIXED_EDIT_WORKTIME": [
"U503"
],
"FIXED_PERIODIC": [
"U503"
],
"SHIFT_DELAY": [],
"SHIFT_MISSED_START": []
}
}
},
"time": {
"start": 1744036659.2339499,
"finish": 1744036659.2655749,
"duration": 0.031625032424926758,
"processing": 0.008758068084716797,
"date_start": "2025-04-07T17:37:39+03:00",
"date_finish": "2025-04-07T17:37:39+03:00",
"operating_reset_at": 1744037259,
"operating": 0
}
}
Возвращаемые данные
|
Название |
Описание |
|
result |
Корневой элемент ответа. Содержит объект с описанием графика работы сотрудников |
|
ID |
Идентификатор графика работы |
|
NAME |
Название графика работы |
|
SCHEDULE_TYPE |
Тип графика работы. Варианты значений:
|
|
REPORT_PERIOD |
Периодичность формирования отчетов по графику. Возможные значения:
|
|
REPORT_PERIOD_OPTIONS |
Объект с описанием дополнительных настроек периода формирования отчетов. Только для |
|
CALENDAR_ID |
Идентификатор календаря, связанного с графиком работы |
|
ALLOWED_DEVICES |
Объект с описанием разрешенных устройств для учета рабочего времени |
|
DELETED |
Флаг удаления графика работы. Значение |
|
IS_FOR_ALL_USERS |
Применимость графика ко всем сотрудникам. Значение |
|
WORKTIME_RESTRICTIONS |
Ограничения рабочего времени. Содержит массив строк с правилами ограничений |
|
CONTROLLED_ACTIONS |
Количество контролируемых действий в рамках графика работы |
|
UPDATED_BY |
Идентификатор пользователя, который последним обновил график работы |
|
DELETED_BY |
Идентификатор пользователя, который удалил график работы. Значение |
|
DELETED_AT |
Дата и время удаления графика работы. Пустая строка означает, что график не был удален |
|
CREATED_BY |
Идентификатор пользователя, который создал график работы. Значение |
|
CREATED_AT |
Дата и время создания графика работы |
|
SHIFTS |
Массив объектов смен. Каждый объект содержит описание смены, связанной с графиком работы |
|
CALENDAR |
Объект с информацией о календаре, связанном с графиком работы |
|
SCHEDULE_VIOLATION_RULES |
Объект с описанием правил нарушения графика работы |
|
time |
Информация о времени выполнения запроса |
Объект REPORT_PERIOD_OPTIONS
|
Название |
Описание |
|
START_WEEK_DAY |
День начала недели. Возможные значения:
|
Объект ALLOWED_DEVICES
|
Название |
Описание |
|
browser |
Разрешен ли учет рабочего времени через браузер. Если |
Объект SHIFTS
|
Название |
Описание |
|
ID |
Идентификатор смены |
|
NAME |
Название смены |
|
BREAK_DURATION |
Длительность перерыва в секундах |
|
WORK_TIME_START |
Время начала рабочего дня в секундах от полуночи |
|
WORK_TIME_END |
Время окончания рабочего дня в секундах от полуночи |
|
WORK_DAYS |
Строка с кодами рабочих дней. Например, |
|
SCHEDULE_ID |
Идентификатор графика работы |
|
DELETED |
Флаг удаления смены. Значение |
Объект CALENDAR
|
Название |
Описание |
|
ID |
Идентификатор календаря |
|
NAME |
Название календаря |
|
PARENT_CALENDAR_ID |
Идентификатор родительского календаря. Значение |
|
SYSTEM_CODE |
Системный код календаря |
|
EXCLUSIONS |
Исключения из календаря. Содержит массив строк с датами или периодами, исключенными из календаря |
Объект SCHEDULE_VIOLATION_RULES
|
Название |
Описание |
|
ID |
Идентификатор правил нарушений графика |
|
SCHEDULE_ID |
Идентификатор графика работы |
|
ENTITY_CODE |
Код сущности, к которой применяются правила. Например, |
|
MAX_EXACT_START |
Максимальное точное время начала рабочего дня в секундах от полуночи |
|
MIN_EXACT_END |
Минимальное точное время окончания рабочего дня в секундах от полуночи |
|
MAX_OFFSET_START |
Максимальное смещение начала рабочего дня. Значение |
|
MIN_OFFSET_END |
Минимальное смещение окончания рабочего дня. Значение |
|
RELATIVE_START_FROM |
Относительное начало рабочего дня (относительно планируемого времени). Значение |
|
RELATIVE_START_TO |
Относительное окончание рабочего дня (относительно планируемого времени). Значение |
|
RELATIVE_END_FROM |
Относительное начало окончания рабочего дня. Значение |
|
RELATIVE_END_TO |
Относительное окончание рабочего дня. Значение |
|
MIN_DAY_DURATION |
Минимальная продолжительность рабочего дня в секундах |
|
MAX_ALLOWED_TO_EDIT_WORK_TIME |
Максимальное время, на которое можно изменить рабочее время в секундах |
|
MAX_WORK_TIME_LACK_FOR_PERIOD |
Максимальное время недоработки за период в секундах |
|
PERIOD_TIME_LACK_AGENT_ID |
Идентификатор агента, который проверяет недоработку за период |
|
MAX_SHIFT_START_DELAY |
Максимальная задержка начала смены в секундах. Значение |
|
MISSED_SHIFT_START |
Флаг пропуска начала смены. Значение |
|
USERS_TO_NOTIFY |
Объект с описанием пользователей для уведомления о нарушениях графика |
Объект USERS_TO_NOTIFY
|
Название |
Описание |
|
FIXED_START_END |
Список пользователей для уведомления о фиксированном начале и окончании рабочего дня. Каждый элемент массива содержит идентификатор пользователя в формате |
|
FIXED_PER_RECORD |
Список пользователей для уведомления о фиксированных записях рабочего времени. Каждый элемент массива содержит идентификатор пользователя в формате |
|
FIXED_EDIT_WORKTIME |
Список пользователей для уведомления об изменении рабочего времени. Каждый элемент массива содержит идентификатор пользователя в формате |
|
FIXED_PERIODIC |
Список пользователей для уведомления о периодических нарушениях графика. Каждый элемент массива содержит идентификатор пользователя в формате |
|
SHIFT_DELAY |
Список пользователей для уведомления о задержке начала смены |
|
SHIFT_MISSED_START |
Список пользователей для уведомления о пропуске начала смены |
Обработка ошибок
Статусы и коды системных ошибок
HTTP-статус: 20x, 40x, 50x
Описанные ниже ошибки могут возникнуть при вызове любого метода
|
Статус |
Код |
Описание |
|
|
|
Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24 |
|
|
|
Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24 |
|
|
|
Превышен лимит на интенсивность запросов |
|
|
|
Метод заблокирован из-за превышения лимита на ресурсоемкость запросов. Блокировка снимается автоматически через 10 минут |
|
|
|
Текущий метод не разрешен для вызова с помощью batch |
|
|
|
Превышена максимальная длина параметров, переданных в метод batch |
|
|
|
Неверный access-токен или код вебхука |
|
|
|
Для вызовов методов требуется использовать протокол HTTPS |
|
|
|
REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка, для снятия необходимо обращаться в техническую поддержку Битрикс24 |
|
|
|
REST API доступен только на коммерческих планах |
|
|
|
У пользователя, с чьим access-токеном или вебхуком был вызван метод, не хватает прав |
|
|
|
Манифест недоступен |
|
|
|
Запрос требует более высоких привилегий, чем предоставляет токен вебхука |
|
|
|
Предоставленный access-токен доступа истек |
|
|
|
Пользователь не имеет доступа к приложению. Это означает, что приложение установлено, но администратор портала разрешил доступ к этому приложению только конкретным пользователям |
|
|
|
Публичная часть сайта закрыта. Чтобы открыть публичную часть сайта на коробочной установке отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта |