Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Завершить текущий день timeman.close», проанализируем лучшие практики и покажем, как правильно использовать завершить текущий в реальных задачах.
Завершить текущий день timeman.close
> Scope: timeman
>
> Кто может выполнять метод: любой пользователь
Метод timeman.close завершает текущий рабочий день.
Параметры метода
Названиетип | Описание |
|---|---|
USER_IDinteger | Идентификатор пользователя. По умолчанию — текущий пользователь |
TIMEdatetime | Время и дата окончания рабочего дня в формате стандарта ATOM (ISO-8601), например, 2025-02-12T15:52:01+00:00. Дата должна совпадать с датой начала рабочего дня.По умолчанию рабочий день закрывается текущим моментом с часовым поясом, в котором рабочий день был начат. Если часовой пояс окончания дня отличается от пояса начала дня, время окончания автоматически пересчитывается в часовой пояс, в котором день был начат. |
REPORTstring | Причина изменения рабочего дня. Обязателен при условиях: |
LATdouble | Географическая широта окончания рабочего дня |
LONdouble | Географическая долгота окончания рабочего дня |
Примеры кода
- cURL (Webhook)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"USER_ID":503,"TIME":"2025-03-27T17:00:01+00:00","REPORT":"Забыла закрыть рабочий день","LAT":53.548841,"LON":9.987274}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/timeman.close- cURL (OAuth)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"USER_ID":503,"TIME":"2025-03-27T17:00:01+00:00","REPORT":"Забыла закрыть рабочий день","LAT":53.548841,"LON":9.987274,"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/timeman.close- JS
try
{
const response = await $b24.callMethod(
'timeman.close',
{
'USER_ID' : 503,
'TIME': '2025-03-27T17:00:01+00:00',
'REPORT': 'Забыла закрыть рабочий день',
'LAT': 53.548841,
'LON': 9.987274
}
);
const result = response.getData().result;
console.info(result);
}
catch( error )
{
console.error(error);
}- PHP
try {
$response = $b24Service
->core
->call(
'timeman.close',
[
'USER_ID' => 503,
'TIME' => '2025-03-27T17:00:01+00:00',
'REPORT' => 'Забыла закрыть рабочий день',
'LAT' => 53.548841,
'LON' => 9.987274,
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
// Нужная вам логика обработки данных
processData($result);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error closing timeman: ' . $e->getMessage();
}- BX24.js
BX24.callMethod(
'timeman.close',
{
'USER_ID' : 503,
'TIME': '2025-03-27T17:00:01+00:00',
'REPORT': 'Забыла закрыть рабочий день',
'LAT': 53.548841,
'LON': 9.987274
},
function(result) {
if (result.error()) {
console.error(result.error());
} else {
console.info(result.data());
}
}
);- PHP CRest
require_once('crest.php');
$result = CRest::call(
'timeman.close',
[
'USER_ID' => 503,
'TIME' => '2025-03-27T17:00:01+00:00',
'REPORT' => 'Забыла закрыть рабочий день',
'LAT' => 53.548841,
'LON' => 9.987274
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';Обработка ответа
HTTP-статус: 200
{
"result": {
"STATUS": "CLOSED",
"TIME_START": "2025-03-27T08:00:01+02:00",
"TIME_FINISH": "2025-03-27T19:00:01+02:00",
"DURATION": "09:37:04",
"TIME_LEAKS": "01:22:56",
"ACTIVE": false,
"IP_OPEN": "",
"IP_CLOSE": "83.219.151.30",
"LAT_OPEN": 53.548841000000003,
"LON_OPEN": 9.9872739999999993,
"LAT_CLOSE": 53.548841000000003,
"LON_CLOSE": 9.9872739999999993,
"TZ_OFFSET": 7200
},
"time": {
"start": 1743057653.725821,
"finish": 1743057654.0894129,
"duration": 0.36359190940856934,
"processing": 0.3278491497039795,
"date_start": "2025-03-27T09:40:53+03:00",
"date_finish": "2025-03-27T09:40:54+03:00",
"operating_reset_at": 1743058253,
"operating": 0.32782983779907227
}
}Возвращаемые данные
Названиетип | Описание |
|---|---|
resultobject | Корневой элемент ответа. Содержит объект c описанием рабочего дня |
STATUSstring | Статус текущего рабочего дня. Варианты значений: |
TIME_STARTdatetime | Дата и время начала рабочего дня. Часовой пояс соответствует часовому поясу начала рабочего дня |
TIME_FINISHdatetime | Дата и время заверения рабочего дня. Для незавершенного рабочего дня возвращается |
DURATIONstring | Длительность рабочего дня в формате HH:MM:SS.Для незавершенного рабочего дня возвращается |
TIME_LEAKSstring | Суммарная длительность перерыва за день в формате HH:MM:SS. |
ACTIVEboolean | Подтвержденность рабочего дня. Значение |
IP_OPENstring | IP-адрес, с которого начат рабочий день |
IP_CLOSEstring | IP-адрес, с которого завершен рабочий день. Для незавершенного рабочего дня возвращается |
LAT_OPENdouble | Географическая широта точки начала рабочего дня |
LON_OPENdouble | Географическая долгота точки начала рабочего дня |
LAT_CLOSEdouble | Географическая широта точки завершения рабочего дня |
LON_CLOSEdouble | Географическая долгота точки завершения рабочего дня |
TZ_OFFSETinteger | Смещение часового пояса сотрудника в котором начат рабочий день. Время завершения рабочего дня приводится к часовому поясу начала дня |
TIME_FINISH_DEFAULTdatetime | Рекомендуемое значение завершения дня, которое можно выводить пользователю в качестве значения по умолчанию. Выводится только для рабочих дней в статусе истек |
timetime | Информация о времени выполнения запроса |
Обработка ошибок
HTTP-статус: 400
{
"error":"WRONG_DATETIME",
"error_description":"Day close date should correspond to the day open date"
}Возможные коды ошибок
| Код | Описание | Значение |
|---|---|---|
| пустая строка | User not found | Пользователь с указанным USER_ID не найден |
WRONG_DATETIME | Day close date should correspond to the day open date | Дата закрытия рабочего дня должна совпадать с датой открытия |
- [](./index)
- [](./timeman-open)
- [](./timeman-pause)
- [](./timeman-status)
- [](./timeman-settings)
💡 Экспертное мнение и рекомендации
Ключевые выводы по теме «Завершить текущий день timeman.close»:
Использование современных стандартов D7 при работе с завершить текущий позволяет писать чистый, масштабируемый и безопасный код. Не забывайте обрабатывать исключения (try/catch) и проверять права доступа текущего пользователя перед выполнением критических операций.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru