Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Получить рабочий график timeman.schedule.get». Мы подготовили подробный разбор принципов работы и развернутые примеры интеграции.
Получить рабочий график timeman.schedule.get
> Scope: timeman
>
> Кто может выполнять метод: любой пользователь
Метод timeman.schedule.get получает рабочий график по идентификатору. Если графика с указанным идентификатором не существует — вернет пустой массив.
Параметры метода
Названиетип | Описание |
|---|---|
idinteger | Идентификатор графика. Узнать идентификатор графика можно в списке графиков на странице Сотрудники > Время и отчеты > Рабочие графики |
Примеры кода
- cURL (Webhook)
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_webbhook_here**/timeman.schedule.get- cURL (OAuth)
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- JS
try
{
const response = await $b24.callMethod(
"timeman.schedule.get",
{
id: 1
}
);
const result = response.getData().result;
console.dir(result);
if(response.more())
response.next();
}
catch(error)
{
console.error(error);
}- PHP
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.js
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();
}
}
);- PHP CRest
require_once('crest.php');
$result = CRest::call(
'timeman.schedule.get',
[
'id' => 1
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';Обработка ответа
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
}
}Возвращаемые данные
Названиетип | Описание |
|---|---|
resultobject | Корневой элемент ответа. Содержит объект с описанием графика работы сотрудников |
IDinteger | Идентификатор графика работы |
NAMEstring | Название графика работы |
SCHEDULE_TYPEstring | Тип графика работы. Варианты значений: |
REPORT_PERIODstring | Периодичность формирования отчетов по графику. Возможные значения: |
REPORT_PERIOD_OPTIONSobject | Объект с описанием дополнительных настроек периода формирования отчетов. Только для |
CALENDAR_IDinteger | Идентификатор календаря, связанного с графиком работы |
ALLOWED_DEVICESobject | Объект с описанием разрешенных устройств для учета рабочего времени |
DELETEDstring | Флаг удаления графика работы. Значение |
IS_FOR_ALL_USERSboolean | Применимость графика ко всем сотрудникам. Значение |
WORKTIME_RESTRICTIONSarray | Ограничения рабочего времени. Содержит массив строк с правилами ограничений |
CONTROLLED_ACTIONSinteger | Количество контролируемых действий в рамках графика работы |
UPDATED_BYinteger | Идентификатор пользователя, который последним обновил график работы |
DELETED_BYinteger | Идентификатор пользователя, который удалил график работы. Значение |
DELETED_ATstring | Дата и время удаления графика работы. Пустая строка означает, что график не был удален |
CREATED_BYinteger | Идентификатор пользователя, который создал график работы. Значение |
CREATED_ATdatetime | Дата и время создания графика работы |
SHIFTSarray | Массив объектов смен. Каждый объект содержит описание смены, связанной с графиком работы |
CALENDARobject | Объект с информацией о календаре, связанном с графиком работы |
SCHEDULE_VIOLATION_RULESobject | Объект с описанием правил нарушения графика работы |
timetime | Информация о времени выполнения запроса |
Объект REPORT_PERIOD_OPTIONS {#report_period_options}
Названиетип | Описание |
|---|---|
START_WEEK_DAYinteger | День начала недели. Возможные значения: |
Объект ALLOWED_DEVICES {#allowed_devices}
Названиетип | Описание |
|---|---|
browserboolean | Разрешен ли учет рабочего времени через браузер. Если |
Объект SHIFTS {#shifts}
Названиетип | Описание |
|---|---|
IDinteger | Идентификатор смены |
NAMEstring | Название смены |
BREAK_DURATIONinteger | Длительность перерыва в секундах |
WORK_TIME_STARTinteger | Время начала рабочего дня в секундах от полуночи |
WORK_TIME_ENDinteger | Время окончания рабочего дня в секундах от полуночи |
WORK_DAYSstring | Строка с кодами рабочих дней. Например, 12345 — с понедельника по пятницу |
SCHEDULE_IDinteger | Идентификатор графика работы |
DELETEDboolean | Флаг удаления смены. Значение |
Объект CALENDAR {#calendar}
Названиетип | Описание |
|---|---|
IDinteger | Идентификатор календаря |
NAMEstring | Название календаря |
PARENT_CALENDAR_IDinteger | Идентификатор родительского календаря. Значение |
SYSTEM_CODEstring | Системный код календаря |
EXCLUSIONSarray | Исключения из календаря. Содержит массив строк с датами или периодами, исключенными из календаря |
Объект SCHEDULE_VIOLATION_RULES {#schedule_violation_rules}
Названиетип | Описание |
|---|---|
IDinteger | Идентификатор правил нарушений графика |
SCHEDULE_IDinteger | Идентификатор графика работы |
ENTITY_CODEstring | Код сущности, к которой применяются правила. Например, |
MAX_EXACT_STARTinteger | Максимальное точное время начала рабочего дня в секундах от полуночи |
MIN_EXACT_ENDinteger | Минимальное точное время окончания рабочего дня в секундах от полуночи |
MAX_OFFSET_STARTinteger | Максимальное смещение начала рабочего дня. Значение |
MIN_OFFSET_ENDinteger | Минимальное смещение окончания рабочего дня. Значение |
RELATIVE_START_FROMinteger | Относительное начало рабочего дня (относительно планируемого времени). Значение |
RELATIVE_START_TOinteger | Относительное окончание рабочего дня (относительно планируемого времени). Значение |
RELATIVE_END_FROMinteger | Относительное начало окончания рабочего дня. Значение |
RELATIVE_END_TOinteger | Относительное окончание рабочего дня. Значение |
MIN_DAY_DURATIONinteger | Минимальная продолжительность рабочего дня в секундах |
MAX_ALLOWED_TO_EDIT_WORK_TIMEinteger | Максимальное время, на которое можно изменить рабочее время в секундах |
MAX_WORK_TIME_LACK_FOR_PERIODinteger | Максимальное время недоработки за период в секундах |
PERIOD_TIME_LACK_AGENT_IDinteger | Идентификатор агента, который проверяет недоработку за период |
MAX_SHIFT_START_DELAYinteger | Максимальная задержка начала смены в секундах. Значение |
MISSED_SHIFT_STARTinteger | Флаг пропуска начала смены. Значение |
USERS_TO_NOTIFYobject | Объект с описанием пользователей для уведомления о нарушениях графика |
Объект USERS_TO_NOTIFY {#users_to_notify}
Названиетип | Описание |
|---|---|
FIXED_START_ENDarray | Список пользователей для уведомления о фиксированном начале и окончании рабочего дня. Каждый элемент массива содержит идентификатор пользователя в формате |
FIXED_PER_RECORDarray | Список пользователей для уведомления о фиксированных записях рабочего времени. Каждый элемент массива содержит идентификатор пользователя в формате |
FIXED_EDIT_WORKTIMEarray | Список пользователей для уведомления об изменении рабочего времени. Каждый элемент массива содержит идентификатор пользователя в формате |
FIXED_PERIODICarray | Список пользователей для уведомления о периодических нарушениях графика. Каждый элемент массива содержит идентификатор пользователя в формате |
SHIFT_DELAYarray | Список пользователей для уведомления о задержке начала смены |
SHIFT_MISSED_STARTarray | Список пользователей для уведомления о пропуске начала смены |
Обработка ошибок
- [](./index)
💡 Экспертное мнение и рекомендации
Практические рекомендации:
- При написании кастомных компонентов для «Получить рабочий график timeman.schedule.get» всегда разделяйте бизнес-логику и представление (шаблон).
- Используйте отладку SQL-запросов через конструкцию
$wpdb->last_queryили стандартный трекер Битрикса, чтобы контролировать нагрузку.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru