<
From version < 122.1 >
edited by Илья Крайнов
on 2023/11/28 12:37
To version < 115.1 >
edited by Илья Крайнов
on 2023/11/14 14:29
>
Change comment: There is no comment for this version

Summary

Details

Icon Page properties
Content
... ... @@ -1921,6 +1921,61 @@
1921 1921   }
1922 1922  ]
1923 1923  
1924 +== (% style="color:#000000; font-size:16px" %)**Экспорт сообщений**(%%) ==
1925 +
1926 +(% class="box infomessage" %)
1927 +(((
1928 +**POST /api/v3/vehicles/export/history**
1929 +)))
1930 +
1931 +Метод возвращает список сообщений терминала объекта за выбранный период.
1932 +
1933 +(% style="text-align: left;" %)
1934 +Метод запроса **POST**
1935 +
1936 +(% style="text-align: left;" %)
1937 +(% style="color:#000000" %)URL запроса: (%%)https:~/~/hosting.glonasssoft.ru/api/v3/vehicles/export/history
1938 +
1939 +(% style="text-align: left;" %)
1940 +(% style="color:#000000" %)В заголовках запроса: X-Auth: Токен авторизации
1941 +
1942 +{
1943 + "vehicleId": 0, ~/~/ ID объекта
1944 + "asArchive": true, ~/~/ true - Архивировать файл, False - не архивировать
1945 + "from": "2023-09-27T12:17:45.973Z", ~/~/ Дата и время начала запроса
1946 + "to": "2023-09-27T12:17:45.973Z" ~/~/ Дата и время окончания запроса
1947 +}
1948 +
1949 +Ответ:
1950 +
1951 +Получаете файл. Сообщение: Code 200/Success
1952 +
1953 +== (% style="color:#000000; font-size:16px" %)**Статус экспорта сообщений**(%%) ==
1954 +
1955 +(% class="box infomessage" %)
1956 +(((
1957 +**GET /api/v3/vehicles/export/history/status**
1958 +)))
1959 +
1960 +Метод возвращает список сообщений терминала объекта за выбранный период.
1961 +
1962 +(% style="text-align: left;" %)
1963 +Метод запроса **GET**
1964 +
1965 +(% style="text-align: left;" %)
1966 +(% style="color:#000000" %)URL запроса: (%%)https:~/~/hosting.glonasssoft.ru/api/v3/export/history/status
1967 +
1968 +(% style="text-align: left;" %)
1969 +(% style="color:#000000" %)В заголовках запроса: X-Auth: Токен авторизации
1970 +
1971 +Ответ:
1972 +
1973 +{
1974 + "activity": true, ~/~/ статус экспорт, где true - экспорт в процессе выполнения, false - в данный момент ничего не экспортируется.
1975 + "progress": 0, ~/~/ прогресс экспорта, от 0 до 100%.
1976 + "message": "string" ~/~/ текст описывающий статус.
1977 +}
1978 +
1924 1924  = (% style="color:#000000; font-size:18.6667px" %)Раздел: **Запрос данных об объекте за период**(%%) =
1925 1925  
1926 1926  == (% style="color:#000000; font-size:16px" %)**Получение данных о пробеге и моточасах транспортного средства**(%%) ==
... ... @@ -3029,6 +3029,7 @@
3029 3029  |Number|Название/номер агрегата
3030 3030  |Description|Текст примечания агрегата
3031 3031  
3087 +
3032 3032  = (% style="color:#000000; font-size:18.6667px" %)Раздел: **Карты-метки**(%%) =
3033 3033  
3034 3034  == (% style="color:#000000; font-size:16px" %)**Получить список карт-меток определенного клиента**(%%) ==
... ... @@ -3050,19 +3050,13 @@
3050 3050   {
3051 3051   "name": "string",
3052 3052   "number": 0,
3053 - "period": 0,
3109 + "period": 0, ~/~/ Частота трансляции радиометки
3054 3054   "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3055 3055   "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3112 + "deleted": true
3056 3056   }
3057 3057  ]
3058 3058  
3059 -|=(% style="width: 215px; background-color: rgb(230, 230, 230);" %)**Параметр**|=(% style="width: 861px; background-color: rgb(230, 230, 230);" %)**Описание**
3060 -|parentId|ID клиента
3061 -|name|Название карты-метки
3062 -|number|Номер
3063 -|period|Период запросов в секундах (работает только для агрегатов)
3064 -|id|ID карты-метки
3065 -
3066 3066  == (% style="color:#000000; font-size:16px" %)**Получить данные карты-метки**(%%) ==
3067 3067  
3068 3068  (% class="box infomessage" %)
... ... @@ -3078,19 +3078,13 @@
3078 3078   {
3079 3079   "name": "string",
3080 3080   "number": 0,
3081 - "period": 0,
3131 + "period": 0, ~/~/ Частота трансляции радиометки
3082 3082   "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3083 3083   "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3134 + "deleted": true
3084 3084   }
3085 3085  ]
3086 3086  
3087 -|=(% style="width: 215px; background-color: rgb(230, 230, 230);" %)**Параметр**|=(% style="width: 861px; background-color: rgb(230, 230, 230);" %)**Описание**
3088 -|name|Название карты-метки
3089 -|number|Номер
3090 -|period|Период запросов в секундах (работает только для агрегатов)
3091 -|id|ID карты-метки
3092 -|parentId|ID клиента
3093 -
3094 3094  == (% style="color:#000000; font-size:16px" %)**Добавить карту-метку**(%%) ==
3095 3095  
3096 3096  (% class="box successmessage" %)
... ... @@ -3105,6 +3105,7 @@
3105 3105   "number": 0,
3106 3106   "period": 0,
3107 3107   "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3152 + "deleted": true
3108 3108  }
3109 3109  
3110 3110  Ответ:
... ... @@ -3115,15 +3115,9 @@
3115 3115   "period": 0,
3116 3116   "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3117 3117   "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3163 + "deleted": true
3118 3118  }
3119 3119  
3120 -|=(% style="width: 215px; background-color: rgb(230, 230, 230);" %)**Параметр**|=(% style="width: 861px; background-color: rgb(230, 230, 230);" %)**Описание**
3121 -|name|Название карты-метки
3122 -|number|Номер
3123 -|period|Период запросов в секундах (работает только для агрегатов)
3124 -|id|ID карты-метки
3125 -|parentId|ID клиента
3126 -
3127 3127  == (% style="color:#000000; font-size:16px" %)**Редактировать карту-метку**(%%) ==
3128 3128  
3129 3129  (% class="box warningmessage" %)
... ... @@ -3139,6 +3139,7 @@
3139 3139   "period": 0,
3140 3140   "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3141 3141   "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3181 + "deleted": true
3142 3142  }
3143 3143  
3144 3144  Ответ:
... ... @@ -3149,15 +3149,9 @@
3149 3149   "period": 0,
3150 3150   "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3151 3151   "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3192 + "deleted": true
3152 3152  }
3153 3153  
3154 -|=(% style="width: 215px; background-color: rgb(230, 230, 230);" %)**Параметр**|=(% style="width: 861px; background-color: rgb(230, 230, 230);" %)**Описание**
3155 -|name|Название карты-метки
3156 -|number|Номер
3157 -|period|Период запросов в секундах (работает только для агрегатов)
3158 -|id|ID карты-метки
3159 -|parentId|ID клиента
3160 -
3161 3161  == (% style="color:#000000; font-size:16px" %)**Удалить карту-метку**(%%) ==
3162 3162  
3163 3163  (% class="box errormessage" %)
... ... @@ -3406,8 +3406,6 @@
3406 3406  **PUT /api/v3/Billing/client/balance**
3407 3407  )))
3408 3408  
3409 -Устанавливает указанное значение баланса не создавая операции пополнение/снятие.
3410 -
3411 3411  Тело запроса:
3412 3412  
3413 3413  {
... ... @@ -3421,50 +3421,6 @@
3421 3421  |(% style="width:215px" %)ClientId|(% style="width:861px" %)Идентификатор клиента
3422 3422  |(% style="width:215px" %)Balance|(% style="width:861px" %)Значение баланса
3423 3423  
3424 -== (% style="color:#000000; font-size:16px" %)**Пополнить баланс**(%%) ==
3425 -
3426 -(% class="box warningmessage" %)
3427 -(((
3428 -**PUT /api/v3/billing/client/balance/deposit**
3429 -)))
3430 -
3431 -Создает операцию **Пополнение **с указанной суммой
3432 -
3433 -Тело запроса:
3434 -
3435 -{
3436 - "ClientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3437 - "Balance": 0
3438 -}
3439 -
3440 -Ответ: Success
3441 -
3442 -|=(% style="width: 215px; background-color: rgb(230, 230, 230);" %)**Параметр**|=(% style="width: 861px; background-color: rgb(230, 230, 230);" %)**Описание**
3443 -|(% style="width:215px" %)ClientId|(% style="width:861px" %)Идентификатор клиента
3444 -|(% style="width:215px" %)Balance|(% style="width:861px" %)Значение баланса
3445 -
3446 -== (% style="color:#000000; font-size:16px" %)**Списать с баланса**(%%) ==
3447 -
3448 -Создает операцию **Списание **с указанной суммой
3449 -
3450 -(% class="box warningmessage" %)
3451 -(((
3452 -**PUT /api/v3/billing/client/balance/withdraw**
3453 -)))
3454 -
3455 -Тело запроса:
3456 -
3457 -{
3458 - "ClientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3459 - "Balance": 0
3460 -}
3461 -
3462 -Ответ: Success
3463 -
3464 -|=(% style="width: 215px; background-color: rgb(230, 230, 230);" %)**Параметр**|=(% style="width: 861px; background-color: rgb(230, 230, 230);" %)**Описание**
3465 -|(% style="width:215px" %)ClientId|(% style="width:861px" %)Идентификатор клиента
3466 -|(% style="width:215px" %)Balance|(% style="width:861px" %)Значение баланса
3467 -
3468 3468  == (% style="color:#000000; font-size:16px" %)**Изменить ограничения клиента**(%%) ==
3469 3469  
3470 3470  (% class="box warningmessage" %)
... ... @@ -3537,305 +3537,6 @@
3537 3537  |PeriodValue|Значение периода.
3538 3538  |PeriodType|Определяет тип периода действия услуги в тарифном плане, 0 - Дни, 1 - Месяцы
3539 3539  
3540 -= (% style="color:#000000; font-size:18.6667px" %)Раздел: **Импорт и Экспорт**(%%) =
3541 -
3542 -(% class="box warningmessage" %)
3543 -(((
3544 -Для тестирования запросов **Импорта **в Postman необходимо скачать его на ПК. Версия в браузере не позволяет загружать файлы в тело запроса.
3545 -)))
3546 -
3547 -== (% style="color:#000000; font-size:16px" %)**Импорт объектов**(%%) ==
3548 -
3549 -(% class="box infomessage" %)
3550 -(((
3551 -**POST /api/v3/vehicles/import/{agentId}**
3552 -)))
3553 -
3554 -Запрос позволяет загрузить объекты в систему из файла. Импортируемый файл может быть в формате **xml** или **wlp. **Также они могут находится в** zip-архиве.**
3555 -
3556 -В пути указывается **agentId** - id клиента.
3557 -
3558 -**Заголовок**
3559 -
3560 -**X-Auth: [токен авторизации]**
3561 -
3562 -**Параметры**
3563 -
3564 -|=(% style="width: 215px; background-color: rgb(230, 230, 230);" %)**Параметр**|=(% style="width: 861px; background-color: rgb(230, 230, 230);" %)**Описание**
3565 -|withNoData|Параметр **Объекты без данных**. Определяет способ загрузки объекта, у которого отсутствует имя или модель объекта. true - загружать, false - пропускать.
3566 -|importMethod|Параметр **Метода импорта датчиков**. Определяет метод добавления датчиков импортируемых из файла. Значение: 1 - Замена, 2 - Слияние, 3 - Добавление
3567 -
3568 -В теле использовать тип **form-data,** тип значения** file**
3569 -
3570 -**Ключи**
3571 -
3572 -|=(% style="width: 215px; background-color: rgb(230, 230, 230);" %)**Параметр**|=(% style="width: 861px; background-color: rgb(230, 230, 230);" %)**Описание**
3573 -|data|В значении передаем файл объекта, формат **xml** или **wlp **
3574 -|csv|В значении передаем файл датчиков, формат **csv**
3575 -
3576 -Ответ:
3577 -
3578 -{
3579 - "vehicleId": 0,
3580 - "name": "string",
3581 - "errors": ["string"]
3582 -}
3583 -
3584 -|=(% style="width: 215px; background-color: rgb(230, 230, 230);" %)**Параметр**|=(% style="width: 861px; background-color: rgb(230, 230, 230);" %)**Описание**
3585 -|vehicleId|ID созданного объекта
3586 -|name|Имя созданного объекта
3587 -|errors|Ошибки и их описание
3588 -
3589 -(% style="color:#000000; font-size:16px" %)**Импорт объектов**
3590 -
3591 -(% class="box infomessage" %)
3592 -(((
3593 -**POST /api/v3/vehicles/import/history/{vehicleId}**
3594 -)))
3595 -
3596 -(% class="wikigeneratedid" %)
3597 -Позволяет импортировать сообщения в выбранный объект. Сообщения должны иметь формат **wln** или **json**. Также они могут быть упакованы и переданы в виде в **zip-архива**.
3598 -
3599 -(% class="wikigeneratedid" %)
3600 -В пути указывается **vehicleId **- id объекта.
3601 -
3602 -**Заголовок**
3603 -
3604 -**X-Auth: [токен авторизации]**
3605 -
3606 -В теле использовать тип **form-data.**
3607 -
3608 -Ключи:
3609 -
3610 -|=(% style="width: 215px; background-color: rgb(230, 230, 230);" %)**Параметр**|=(% style="width: 861px; background-color: rgb(230, 230, 230);" %)**Описание**
3611 -|**history**|В значении передавать файл с историей
3612 -
3613 -В случае, если загружается история из файла **wln **можно выполнять подмену названий параметров. В ключе вы указываете название параметра из файла, в значении указываете значение на которое нужно заменить.
3614 -
3615 -Ответ:
3616 -
3617 -{
3618 - "results": [
3619 - {
3620 - "vehicleGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3621 - "vehicleId": 0,
3622 - "errors": [
3623 - "string"
3624 - ],
3625 - "firstMessageDate": "2023-11-28T09:27:58.949Z",
3626 - "lastMessageDate": "2023-11-28T09:27:58.949Z",
3627 - "producedCount": 0,
3628 - "msgCount": 0
3629 - }
3630 - ]
3631 -}
3632 -
3633 -|=(% style="width: 215px; background-color: rgb(230, 230, 230);" %)**Параметр**|=(% style="width: 861px; background-color: rgb(230, 230, 230);" %)**Описание**
3634 -|results|Результаты импорта в разрезе ТС
3635 -|vehicleGuid|Guid ТС
3636 -|vehicleId|ID ТС
3637 -|errors|Список ошибок импорта истории (если пустой - нет ошибок)
3638 -|firstMessageDate|Дата первого импортированного сообщения (UTC)
3639 -|lastMessageDate|Дата последнего импортированного сообщения (UTC)
3640 -|producedCount|Кол-во успешно отправленных в шину данных сообщений
3641 -|msgCount|Кол-во обработанных сообщений всего
3642 -
3643 -== (% style="color:#000000; font-size:16px" %)**Статус импорта сообщений**(%%) ==
3644 -
3645 -(% class="box infomessage" %)
3646 -(((
3647 -**GET /api/v3/vehicles/import/history/status**
3648 -)))
3649 -
3650 -Запрос статуса импорта истории. Может потребоваться в случае импорта истории за большой период.
3651 -
3652 -Ответ:
3653 -
3654 -{
3655 - "activity": true,
3656 - "progress": 0,
3657 - "message": "string"
3658 -}
3659 -
3660 -|=(% style="width: 215px; background-color: rgb(230, 230, 230);" %)**Параметр**|=(% style="width: 861px; background-color: rgb(230, 230, 230);" %)**Описание**
3661 -|activity|Активен ли экспорт/импорт истории сейчас, true - да, false - нет
3662 -|progress|Guid ТС
3663 -
3664 -== (% style="color:#000000; font-size:16px" %)**Экспорт объектов**(%%) ==
3665 -
3666 -(% class="box infomessage" %)
3667 -(((
3668 -**POST /api/v3/vehicles/export**
3669 -)))
3670 -
3671 -Запрос позволяет экспортировать файлы с настройками объектов. В запросе передается массив id объектов.
3672 -
3673 -Тело запроса:
3674 -
3675 -[
3676 - id
3677 -]
3678 -
3679 -Ответ: Success 200, получаете файлы с настройками.
3680 -
3681 -== (% style="color:#000000; font-size:16px" %)**Экспорт сообщений**(%%) ==
3682 -
3683 -(% class="box infomessage" %)
3684 -(((
3685 -**POST /api/v3/vehicles/export/history**
3686 -)))
3687 -
3688 -Метод возвращает список сообщений терминала объекта за выбранный период.
3689 -
3690 -Тело запроса:
3691 -
3692 -{
3693 - "vehicleId": 0,
3694 - "asArchive": true,
3695 - "from": "2023-09-27T12:17:45.973Z",
3696 - "to": "2023-09-27T12:17:45.973Z"
3697 -}
3698 -
3699 -Ответ:
3700 -
3701 -Получаете файл. Сообщение: Code 200/Success
3702 -
3703 -|=(% style="width: 215px; background-color: rgb(230, 230, 230);" %)**Параметр**|=(% style="width: 861px; background-color: rgb(230, 230, 230);" %)**Описание**
3704 -|vehicleId|ID объекта
3705 -|asArchive|true - Архивировать файл, False - не архивировать
3706 -|from|Дата и время начала запроса
3707 -|to|Дата и время окончания запроса
3708 -
3709 -== (% style="color:#000000; font-size:16px" %)**Статус экспорта сообщений**(%%) ==
3710 -
3711 -(% class="box infomessage" %)
3712 -(((
3713 -**GET /api/v3/vehicles/export/history/status**
3714 -)))
3715 -
3716 -Метод возвращает список сообщений терминала объекта за выбранный период.
3717 -
3718 -Ответ:
3719 -
3720 -{
3721 - "activity": true,
3722 - "progress": 0,
3723 - "message": "string"
3724 -}
3725 -
3726 -|=(% style="width: 215px; background-color: rgb(230, 230, 230);" %)**Параметр**|=(% style="width: 861px; background-color: rgb(230, 230, 230);" %)**Описание**
3727 -|activity|Статус экспорта, где true - экспорт в процессе выполнения, false - в данный момент ничего не экспортируется.
3728 -|progress|Прогресс экспорта, от 0 до 100%
3729 -|message|Текст описывающий статус
3730 -
3731 -= (% style="color:#000000; font-size:18.6667px" %)Раздел: **Экодрайвинг**(%%) =
3732 -
3733 -== (% style="color:#000000; font-size:16px" %)**Запрос рейтинша качества вождения**(%%) ==
3734 -
3735 -(% class="box infomessage" %)
3736 -(((
3737 -**POST /api/v3/EcoDriving/rating**
3738 -)))
3739 -
3740 -Позволяет получить данные рейтинга нарушений выбранных объектов за указанный период времени. Данные, выдаваемые этим запросом аналогичны тем, что вы можете увидеть в окне **Качество вождения** в мониторинге. В массиве **items **передается список объектов из рейтинга качества вождения, в **trips **передается информация по отдельным рейсам объекта.
3741 -
3742 -Тело запроса:
3743 -
3744 -{
3745 - "vehicleIds": [vehicleId],
3746 - "from": "2023-11-22T09:29:48.051Z",
3747 - "to": "2023-11-22T09:29:48.051Z"
3748 -}
3749 -
3750 -|=(% style="width: 215px; background-color: rgb(230, 230, 230);" %)**Параметр**|=(% style="width: 861px; background-color: rgb(230, 230, 230);" %)**Описание**
3751 -|vehicleIds|Массив ID объектов
3752 -|from|Дата начала запроса
3753 -|to|Дата окончания запроса
3754 -
3755 -Ответ:
3756 -
3757 -{
3758 - "items": [
3759 - {
3760 - "from": "2023-11-22T09:29:48.052Z",
3761 - "to": "2023-11-22T09:29:48.052Z",
3762 - "vehicleId": 0,
3763 - "vehicleName": "string",
3764 - "vehicleModel": "string",
3765 - "penalty": 0,
3766 - "score": 0,
3767 - "totalViolations": 0,
3768 - "violationsByType": {
3769 - "overspeedingViolations": 0,
3770 - "accelerationViolations": 0,
3771 - "brakingViolations": 0,
3772 - "turningViolations": 0,
3773 - "dangerousDrivingViolations": 0,
3774 - "sensorViolations": 0
3775 - },
3776 - "moveTime": 0,
3777 - "mileage": 0,
3778 - "tripsCount": 0,
3779 - "trips": [
3780 - {
3781 - "penalty": 0,
3782 - "score": 0,
3783 - "violationsCount": 0,
3784 - "violationsByType": {
3785 - "overspeedingViolations": 0,
3786 - "accelerationViolations": 0,
3787 - "brakingViolations": 0,
3788 - "turningViolations": 0,
3789 - "dangerousDrivingViolations": 0,
3790 - "sensorViolations": 0
3791 - },
3792 - "moveTime": 0,
3793 - "mileage": 0,
3794 - "motohours": 0,
3795 - "maxSpeed": 0,
3796 - "startAddress": "string",
3797 - "endAddress": "string",
3798 - "drivers": [
3799 - {
3800 - "driverGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3801 - "driverName": "string",
3802 - "driverRfid": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
3803 - }
3804 - ]
3805 - }
3806 - ]
3807 - }
3808 - ]
3809 -}
3810 -
3811 -|=(% style="width: 215px; background-color: rgb(230, 230, 230);" %)**Параметр**|=(% style="width: 861px; background-color: rgb(230, 230, 230);" %)**Описание**
3812 -|from|Дата начала запроса
3813 -|to|Дата  окончания
3814 -|vehicleId|ID объекта
3815 -|vehicleName|Имя объекта
3816 -|vehicleModel|Модель объекта
3817 -|penalty|Сумма штрафных баллов
3818 -|score|Оценка
3819 -|totalViolations|Суммарное количество нарушений
3820 -|violationsByType|Список типов нарушений и количество нарушений для каждого типа
3821 -|overspeedingViolations|Превышение скорости
3822 -|accelerationViolations|Ускорение
3823 -|brakingViolations|Торможение
3824 -|turningViolations|Резкий поворот
3825 -|dangerousDrivingViolations|Резкое вождение
3826 -|sensorViolations|Нарушение по датчику
3827 -|moveTime|Время в движении
3828 -|mileage|Пробег
3829 -|tripsCount|Количество рейсов
3830 -|motohours|Моточасы
3831 -|maxSpeed|Максимальная скорость
3832 -|startAddress|Адрес начала рейса
3833 -|endAddress|Адрес окончания рейса
3834 -|drivers|Список водителей, которые были на объекте в течениии рейса
3835 -|driverGuid|Guid водителя
3836 -|driverName|Имя водителя
3837 -|driverRfid|Номер Карты-метки
3838 -
3839 3839  (% class="box" lang="en-US" style="text-align: center;" %)
3840 3840  (((
3841 3841  (% lang="ru-RU" style="color:#000000; font-family:Liberation Serif,serif; font-size:14pt; font-style:normal; font-variant:normal" %)**По вопросам работы PUBLIC API 3.0 можно обращаться**(% lang="ru-RU" style="color:#000000; font-size:14pt" %)** на [[support@glonasssoft.ru>>mailto:support@glonasssoft.ru]] **

Меню

ГЛОНАССSoft wiki - 2024 г.