timeman.timecontrol.reports.get
Получить отчет о выявленных отсутствиях
Описание
Метод timeman.timecontrol.reports.get получает отчет о выявленных отсутствиях.
Параметры
USER_ID
integer
обязательный
Идентификатор пользователя, для которого запрашиваются отчеты.
Получить идентификатор пользователя можно методом user.get
MONTH
integer
обязательный
Номер месяца
YEAR
integer
обязательный
Год
IDLE_MINUTES
integer
необязательный
Максимальное время отсутствия на рабочем месте, которое не учитывается как отсутствие.
Параметр доступен руководителю и администратору.
Если не указывать, используется время из настроек модуля
WORKDAY_HOURS
integer
необязательный
Продолжительность рабочего дня в часах.
По умолчанию — 8 часов
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"USER_ID":3,"MONTH":5,"YEAR":2025,"IDLE_MINUTES":15,"WORKDAY_HOURS":8}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/timeman.timecontrol.reports.get
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"USER_ID":3,"MONTH":5,"YEAR":2025,"IDLE_MINUTES":15,"WORKDAY_HOURS":8,"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/timeman.timecontrol.reports.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 TimecontrolReportResult = {
report: {
month_title: string
date_start: ISODate
date_finish: ISODate
days: {
index: string
day_title: string
workday_date_start: ISODate
workday_date_finish: ISODate
workday_complete: boolean
workday_time_leaks_user: number
workday_time_leaks_final: number
workday_duration: number
workday_duration_final: number
workday_duration_config: number
reports: {
id: string
user_id: string
type: string
date_start: ISODate
date_finish: ISODate
duration: number
active: boolean
entry_id: string
report_type: string
report_text: string
system_text: string | null
source_start: string
source_finish: string
ip_start: string
ip_finish: string
ip_start_network: boolean | object
ip_finish_network: boolean | object
}[]
workday_time_leaks_real: number
}[]
}
user: {
id: number
active: boolean
name: string
first_name: string
last_name: string
work_position: string
avatar: string
personal_gender: string
last_activity_date: ISODate
}
}
try {
const response = await $b24.actions.v2.call.make<TimecontrolReportResult>({
method: 'timeman.timecontrol.reports.get',
params: {
USER_ID: 3,
MONTH: 5,
YEAR: 2025,
IDLE_MINUTES: 15,
WORKDAY_HOURS: 8,
},
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(result.report.month_title, result.report.days.length, result.user.name)
}
} 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 getTimecontrolReport() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'timeman.timecontrol.reports.get',
params: {
USER_ID: 3,
MONTH: 5,
YEAR: 2025,
IDLE_MINUTES: 15,
WORKDAY_HOURS: 8,
},
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(result.report.month_title, result.report.days.length, result.user.name)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', getTimecontrolReport)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.timeman.timecontrol.reports.get(
user_id=3,
month=5,
year=2025,
idle_minutes=15,
workday_hours=8,
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
try {
$response = $b24Service
->core
->call(
'timeman.timecontrol.reports.get',
[
'USER_ID' => 3,
'MONTH' => 5,
'YEAR' => 2025,
'IDLE_MINUTES' => 15,
'WORKDAY_HOURS' => 8
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
echo 'Info: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error getting time control reports: ' . $e->getMessage();
}
BX24.callMethod(
'timeman.timecontrol.reports.get',
{
'USER_ID': 3,
'MONTH': 5,
'YEAR': 2025,
'IDLE_MINUTES': 15,
'WORKDAY_HOURS': 8
},
function(result) {
if (result.error()) {
console.error(result.error());
} else {
console.info(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'timeman.timecontrol.reports.get',
[
'USER_ID' => 3,
'MONTH' => 5,
'YEAR' => 2025,
'IDLE_MINUTES' => 15,
'WORKDAY_HOURS' => 8
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "timeman.timecontrol.reports.get", b24.Params{
"USER_ID": 3,
"MONTH": 5,
"YEAR": 2025,
"IDLE_MINUTES": 15,
"WORKDAY_HOURS": 8,
}, b24.WithIdempotent())
if err != nil {
return fmt.Errorf("timeman.timecontrol.reports.get: %w", err)
}
// Ответ приходит как json.RawMessage — разберите его
// в структуру под форму ответа, показанную ниже на этой странице.
fmt.Printf("%s\n", res.Result)
Ответ
HTTP-статус: 200
{
"result": {
"report": {
"month_title": "Май",
"date_start": "2025-05-01T00:00:00+03:00",
"date_finish": "2025-05-31T23:59:59+03:00",
"days": [
{
"index": "20250526",
"day_title": "26.05.2025",
"workday_date_start": "2025-05-26T14:44:47+03:00",
"workday_date_finish": "2025-05-26T14:45:29+03:00",
"workday_complete": true,
"workday_time_leaks_user": 0,
"workday_time_leaks_final": 28758,
"workday_duration": 42,
"workday_duration_final": 42,
"workday_duration_config": 28800,
"reports": [
{
"id": "27",
"user_id": "503",
"type": "TM_START",
"date_start": "2025-05-26T14:44:47+03:00",
"date_finish": "2025-05-26T14:44:47+03:00",
"duration": 0,
"active": false,
"entry_id": "2237",
"report_type": "WORK",
"report_text": "Работал над проектом",
"system_text": null,
"source_start": "TM_EVENT",
"source_finish": "TM_EVENT",
"ip_start": "83.219.151.30",
"ip_finish": "83.219.151.30",
"ip_start_network": false,
"ip_finish_network": false
},
{
"id": "29",
...
}
],
"workday_time_leaks_real": 0
}
]
},
"user": {
"id": 3,
"active": true,
"name": "Мария Ившина",
"first_name": "Мария",
"last_name": "Ившина",
"work_position": "IT-специалист",
"avatar": "http://test.bitrix24.com/upload/resize_cache/45749/7acf4ca766af5d8/main/c89/c89c6b73470635c/4R5A1256.png",
"personal_gender": "F",
"last_activity_date": "2025-05-29T17:15:56+03:00"
},
"time": {
"start": 1748528193.688745,
"finish": 1748528193.730104,
"duration": 0.04135894775390625,
"processing": 0.014277935028076172,
"date_start": "2025-05-29T17:16:33+03:00",
"date_finish": "2025-05-29T17:16:33+03:00",
"operating_reset_at": 1748528793,
"operating": 0
}
}
}
Возвращаемые данные
result
object
Корневой элемент ответа
report
object
Информация об отчете
month_title
string
Название месяца
date_start
datetime
Дата начала периода выборки в формате ATOM
date_finish
datetime
Дата окончания периода выборки в формате ATOM
days
array
Список объектов с описанием отработанных дней
user
object
Объект с информацией о пользователе
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": "USER_ACCESS_ERROR",
"error_description": "You don't have access to report for this user"
}
| Код | Описание | Значение |
|---|---|---|
ACCESS_ERROR |
You don't have access to this method | У вас нет доступа к этому методу |
USER_ACCESS_ERROR |
You don't have access to report for this user | У вас нет доступа к отчетам этого пользователя |

