<
From version < 238.1 >
edited by Андрей Калиновский
on 2025/05/26 15:47
To version < 221.1 >
edited by Андрей Калиновский
on 2025/04/24 15:22
>
Change comment: There is no comment for this version

Summary

Details

Icon Page properties
Content
... ... @@ -877,7 +877,7 @@
877 877  {
878 878   "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
879 879   "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
880 - "deleted": false,
880 + "deleted": true,
881 881   "extId": "string",
882 882   "name": "string",
883 883   "picture": "string",
... ... @@ -896,7 +896,7 @@
896 896  {
897 897   "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
898 898   "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
899 - "deleted": false,
899 + "deleted": true,
900 900   "extId": "string",
901 901   "name": "string",
902 902   "picture": "string",
... ... @@ -930,7 +930,7 @@
930 930  (% style="color:#000000" %)// //(% lang="en-US" %)**PUT /api/v3/models**
931 931  )))
932 932  
933 -(% style="color:#000000" %)Метод позволяет изменить статус модели, указанного в запросе.
933 +(% style="color:#000000" %)Метод позволяет изменить статус пользователя, указанного в запросе.
934 934  
935 935  (% style="color:#000000" %)Метод запроса: **PUT**
936 936  
... ... @@ -997,7 +997,7 @@
997 997  (% lang="en-US" %)**DELETE /api/v3/models/{Id}**
998 998  )))
999 999  
1000 -(% style="color:#000000" %)Метод позволяет удалить модели. Метод позволяет удалить модель, указанного в строке запроса.
1000 +(% style="color:#000000" %)Метод позволяет удалить пользователя. Метод позволяет удалить пользователя, указанного в строке запроса.
1001 1001  
1002 1002  (% style="color:#000000" %)Метод запроса: **DELETE**
1003 1003  
... ... @@ -1628,6 +1628,77 @@
1628 1628  - при задании сезонной нормы обязательны соответствующие даты начала/окончания.
1629 1629  
1630 1630  
1631 +== **Импортировать историю ТС (Асинхронный запрос)** ==
1632 +
1633 +(% class="box successmessage" %)
1634 +(((
1635 +**POST /api/v3/Vehicles/importAsync/history/{vehicleId} **
1636 +)))
1637 +
1638 +Метод запроса: **POST**
1639 +
1640 +URL запроса: **https:~/~/hosting.glonasssoft.ru/api/v3/Vehicles/importAsync/history/{vehicleId} **
1641 +
1642 +Параметр запроса: {**__vehicleid}__** - идентификатор транспортного средства
1643 +
1644 +
1645 +Ответ:
1646 +
1647 +{
1648 +
1649 + "RequestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Уникальный идентификатор запроса
1650 +
1651 + "Status": 0, ~/~/ Перечисление состояний выполнения запроса
1652 +
1653 +~/~/ ( 0 - Success, 1 - InPorgress, 2 - Canceled, 10 - Error, 20 - ErrorRequestValidation, 50 - ErrorExceedMaximumActiveRequest)
1654 +
1655 + "Message": "string", ~/~/ Информация о выполнении запроса
1656 +
1657 + "ProgressState": 1, ~/~/ Тип информирования о ходе выполнении запроса (1 - Intermediate, 2 - ProgressProcent, 255 - None)
1658 +
1659 + "ProgressValue": 0, ~/~/ Прогресс выполнения запроса. Актуально, только если ProgressState=InProgress
1660 +
1661 + "Data": "string" ~/~/ Данные
1662 +
1663 +}
1664 +
1665 +
1666 +== **Возвращает статус асинхронного запроса импорта истории ТС** ==
1667 +
1668 +(% class="box infomessage" %)
1669 +(((
1670 +**GET /api/v3/Vehicles/importAsync/history/state/{requestId}**
1671 +)))
1672 +
1673 +Метод запроса: **GET**
1674 +
1675 +URL запроса: https:**~/~/hosting.glonasssoft.ru/api/v3/Vehicles/importAsync/history/state/{requestId}**
1676 +
1677 +Параметр запроса: {**requestId__}__** - Уникальный идентификатор запроса
1678 +
1679 +
1680 +Ответ:
1681 +
1682 +{
1683 +
1684 + "RequestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Уникальный идентификатор запроса
1685 +
1686 + "Status": 0, ~/~/ Перечисление состояний выполения запроса
1687 +~/~/ 0 - Success, 1 - InPorgress, 2 - Canceled, 10 - Error, 20 - ErrorRequestValidation, 50 - ErrorExceedMaximumActiveRequest
1688 +
1689 + "Message": "string", ~/~/ Информация о выполнении запроса
1690 +
1691 + "ProgressState": 1, ~/~/ Тип информирования о ходе выполнении запроса
1692 +
1693 +~/~/ 1 - Intermediate, 2 - ProgressProcent, 255 - None
1694 +
1695 + "ProgressValue": 0, ~/~/ Прогресс выполнения запроса. Актуально, только если ProgressState=InProgress
1696 +
1697 + "Data": "string" ~/~/ Данные
1698 +
1699 +}
1700 +
1701 +
1631 1631  == (% style="color:#000000; font-size:16px" %)**Получение списка объектов с основными параметрами**(%%) ==
1632 1632  
1633 1633  (% class="box infomessage" %)
... ... @@ -1773,6 +1773,7 @@
1773 1773   "stage": "", ~/~/ Состояние
1774 1774  (% style="color:#000000" %) }
1775 1775  
1847 +== ==
1776 1776  
1777 1777  == (% style="color:#000000; font-size:16px" %)**Редактирование объекта**(%%) ==
1778 1778  
... ... @@ -2455,8 +2455,6 @@
2455 2455   "end": "2023-08-09T14:23:14.574Z", ~/~/ Окончание 
2456 2456   "fuelLevelStart": 0, ~/~/ Уровень топлива на начало периода
2457 2457   "fuelLevelEnd": 0, ~/~/ Уровень топлива на конец периода
2458 - "fuelTankLevelStart": 0, ~/~/ Уровень топлива в цистерне на начало периода
2459 - "fuelTankLevelEnd": 0, ~/~/ Уровень топлива в цистерне на конец периода
2460 2460   "fuelConsumption": 0, ~/~/ Расход топлива
2461 2461   "fuelConsumptionMove": 0 ~/~/ Расход топлива в движении
2462 2462   "fuelConsumptionFactTank": 0 ~/~/ Фактический расход топлива в цистерне
... ... @@ -4249,43 +4249,6 @@
4249 4249  |producedCount|Кол-во успешно отправленных в шину данных сообщений
4250 4250  |msgCount|Кол-во обработанных сообщений всего
4251 4251  
4252 -== **Импортировать историю ТС (Асинхронный запрос)** ==
4253 -
4254 -(% class="box successmessage" %)
4255 -(((
4256 -**POST /api/v3/Vehicles/importAsync/history/{vehicleId} **
4257 -)))
4258 -
4259 -При выгрузке большого объема информации, выполняющихся более 90 секунд, рекомендуется использовать этот запрос.
4260 -
4261 -Метод запроса: **POST**
4262 -
4263 -URL запроса: **https:~/~/hosting.glonasssoft.ru/api/v3/Vehicles/importAsync/history/{vehicleId} **
4264 -
4265 -Параметр запроса: {**__vehicleid}__** - идентификатор транспортного средства
4266 -
4267 -
4268 -Ответ:
4269 -
4270 -{
4271 -
4272 - "RequestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Уникальный идентификатор запроса
4273 -
4274 - "Status": 0, ~/~/ Перечисление состояний выполнения запроса
4275 -
4276 -~/~/ ( 0 - Success, 1 - InPorgress, 2 - Canceled, 10 - Error, 20 - ErrorRequestValidation, 50 - ErrorExceedMaximumActiveRequest)
4277 -
4278 - "Message": "string", ~/~/ Информация о выполнении запроса
4279 -
4280 - "ProgressState": 1, ~/~/ Тип информирования о ходе выполнении запроса (1 - Intermediate, 2 - ProgressProcent, 255 - None)
4281 -
4282 - "ProgressValue": 0, ~/~/ Прогресс выполнения запроса. Актуально, только если ProgressState=InProgress
4283 -
4284 - "Data": "string" ~/~/ Данные
4285 -
4286 -}
4287 -
4288 -
4289 4289  == (% style="color:#000000; font-size:16px" %)**Статус импорта сообщений**(%%) ==
4290 4290  
4291 4291  (% class="box infomessage" %)
... ... @@ -4303,59 +4303,10 @@
4303 4303   "message": "string"
4304 4304  }
4305 4305  
4306 -|=(% style="width: 215px; background-color: rgb(230, 230, 230);" %)(((
4307 -**Параметр**
4308 -)))|=(% style="width: 861px; background-color: rgb(230, 230, 230);" %)(((
4309 -**Описание**
4310 -)))
4311 -|(((
4312 -activity
4313 -)))|(((
4314 -Активен ли экспорт/импорт истории сейчас, true - да, false - нет
4315 -)))
4316 -|(((
4317 -progress
4318 -)))|(((
4319 -Guid ТС
4320 -)))
4339 +|=(% style="width: 215px; background-color: rgb(230, 230, 230);" %)**Параметр**|=(% style="width: 861px; background-color: rgb(230, 230, 230);" %)**Описание**
4340 +|activity|Активен ли экспорт/импорт истории сейчас, true - да, false - нет
4341 +|progress|Guid ТС
4321 4321  
4322 -== **Возвращает статус асинхронного запроса импорта истории ТС** ==
4323 -
4324 -(% class="box infomessage" %)
4325 -(((
4326 -**GET /api/v3/Vehicles/importAsync/history/state/{requestId}**
4327 -)))
4328 -
4329 -При выгрузке большого объема информации, выполняющихся более 90 секунд, рекомендуется использовать этот запрос.
4330 -
4331 -Метод запроса: **GET**
4332 -
4333 -URL запроса: https:**~/~/hosting.glonasssoft.ru/api/v3/Vehicles/importAsync/history/state/{requestId}**
4334 -
4335 -Параметр запроса: {**requestId__}__** - Уникальный идентификатор запроса
4336 -
4337 -
4338 -Ответ:
4339 -
4340 -{
4341 -
4342 - "RequestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Уникальный идентификатор запроса
4343 -
4344 - "Status": 0, ~/~/ Перечисление состояний выполения запроса
4345 -~/~/ 0 - Success, 1 - InPorgress, 2 - Canceled, 10 - Error, 20 - ErrorRequestValidation, 50 - ErrorExceedMaximumActiveRequest
4346 -
4347 - "Message": "string", ~/~/ Информация о выполнении запроса
4348 -
4349 - "ProgressState": 1, ~/~/ Тип информирования о ходе выполнении запроса
4350 -
4351 -~/~/ 1 - Intermediate, 2 - ProgressProcent, 255 - None
4352 -
4353 - "ProgressValue": 0, ~/~/ Прогресс выполнения запроса. Актуально, только если ProgressState=InProgress
4354 -
4355 - "Data": "string" ~/~/ Данные
4356 -
4357 -}
4358 -
4359 4359  == (% style="color:#000000; font-size:16px" %)**Экспорт объектов**(%%) ==
4360 4360  
4361 4361  (% class="box infomessage" %)
... ... @@ -5916,62 +5916,6 @@
5916 5916  )))
5917 5917  
5918 5918  
5919 -= **Раздел: Роли** =
5920 -
5921 -== **Получение списка клиентских и системных ролей пользователя ** ==
5922 -
5923 -(% class="box successmessage" %)
5924 -(((
5925 -**POST /api/v3/groups/find**
5926 -)))
5927 -
5928 -Пример запроса:
5929 -
5930 -(((
5931 -{
5932 - "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Идентификатор агента содержащий пользовательские роли
5933 - "userId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" ~/~/ Идентификатор родительского элемента пользователей 
5934 -}
5935 -)))
5936 -
5937 -(((
5938 -
5939 -)))
5940 -
5941 -(((
5942 -Пример ответа:
5943 -)))
5944 -
5945 -(((
5946 -(((
5947 -{
5948 - "groups": [  ~/~/ Системные роли пользователя
5949 - {
5950 - "code": "string", ~/~/ Код роли.
5951 - "name": "string", ~/~/ Имя  
5952 - "shortName": "string" ~/~/ Короткое имя 
5953 - }
5954 - ],
5955 - "customGroups": [ ~/~/ Системные роли пользователя
5956 - {
5957 - "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Идентификатор роли.
5958 - "name": "string", ~/~/ Наименование 
5959 - "shortName": "string", ~/~/ Короткое наименование 
5960 - "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" ~/~/ Идентификатор владельца
5961 - }
5962 - ]
5963 -}
5964 -)))
5965 -)))
5966 -
5967 -(((
5968 -
5969 -)))
5970 -
5971 -(((
5972 -
5973 -)))
5974 -
5975 5975  = **Раздел: Локатор ** =
5976 5976  
5977 5977  
... ... @@ -5979,7 +5979,7 @@
5979 5979  
5980 5980  (% class="box infomessage" %)
5981 5981  (((
5982 -**GET /api/v3/locators **
5910 +**GET /api/v3/locators**
5983 5983  )))
5984 5984  
5985 5985  В заголовках запроса: X-Auth: Токен авторизации
... ... @@ -5988,83 +5988,33 @@
5988 5988  Пример ответа:
5989 5989  
5990 5990  (((
5991 -(((
5992 -{
5993 - "vehiclesIds": [ ~/~/ Объекты
5994 - 0
5995 - ],
5996 - "geoIds": [ ~/~/ Геозоны
5997 - 0
5998 - ],
5999 - "fieldsIds": [ ~/~/ Поля
6000 - 0
6001 - ],
6002 - "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Идентификатор локатора.
6003 - "agentGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Идентификатор агента
6004 - "agentName": "string", ~/~/ Наименование агента.
6005 - "isEnabled": true, ~/~/ Активность 
6006 - "created": "2025-05-26T11:31:05.399Z", ~/~/ Дата создания
6007 - "updated": "2025-05-26T11:31:05.399Z", ~/~/ Дата обновления
6008 - "name": "string", ~/~/ Наименование.
6009 - "status": 0, ~/~/ Определяет статус пользователя локатора (0 - Активный, 1 - Запланированный, 2 - Неактивный) 
6010 - "activationMode": 0, ~/~/ Определяет вид активации локаторов ( 0 - сейчас, 1 - запланировать на время)
6011 - "activationTime": "2025-05-26T11:31:05.399Z", ~/~/ Время активации
6012 - "validity": 0, ~/~/ Значение срока действия
6013 - "validityType": 0, ~/~/ Тип значения срока действия (Дни = 0, Часы = 1, Минуты = 2) 
6014 - "autoProlongation": true, ~/~/ Автопродление срока действия.
6015 - "creatorUserId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ ID пользователя, создавшего локатор.
6016 - "creatorUserName": "string", ~/~/ Имя пользователя, создавшего локатор.
6017 - "url": "string", ~/~/ Ссылка
6018 - "language": 0, ~/~/ Язык
6019 - "showVehicleName": true, ~/~/ Наименование объекта
6020 - "showVehicleDirection": true, ~/~/ Направление движения на треке
6021 - "allowTrackReport": true, ~/~/ Трек
6022 - "showTrackTracing": true, ~/~/ Трассировка трека
6023 - "showSensors": true, ~/~/ Датчик
6024 - "availableMapLayers": [ ~/~/  Слои на карте
6025 - 0
6026 - ]
6027 -}
6028 -)))
6029 -)))
6030 -
6031 -
6032 -== **Получение перечня моделей ** ==
6033 -
6034 -(% class="box successmessage" %)
6035 -(((
6036 -**POST /api/v3/models/find**
6037 -)))
6038 -
6039 -Пример запроса:
6040 -
6041 -(((
6042 -(((
6043 -{
6044 - "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Идентификатор локатора
6045 - "name": "string", ~/~/ Наименование локатора
6046 - "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" ~/~/ Идентификатор родительского элемента пользователей
6047 -)))
6048 -
6049 -
6050 -
6051 - Пример ответа: 
6052 -
6053 -
6054 -(((
6055 6055  [
6056 6056   {
6057 - "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Идентификатор локатора 
6058 - "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Идентификатор пользователя, для которого надо получить данные
6059 - "parentName": "string", ~/~/ Наименование пользователя, для которого надо получить данные
6060 - "name": "string", ~/~/ Наименование локатора
6061 - "modelType": 0 ~/~/ Типы моделей транспортных средств (0 - None, 1 - Агро, 2 - Перевозчик, 3 - Машины) 
5921 + "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",  ~/~/ Идентификатор локатора.
5922 + "agentGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Идентификатор агента.
5923 + "agentName": "string", ~/~/ Наименование агента.
5924 + "isEnabled": true, ~/~/ Активен 
5925 + "created": "2025-03-12T06:48:41.254Z", ~/~/ Дата создания
5926 + "updated": "2025-03-12T06:48:41.254Z", ~/~/ Дата обновления
5927 + "name": "string", ~/~/ Наименование
5928 + "status": 0, ~/~/ 
5929 + "activationMode": 0, ~/~/ Определяет статус пользователя локатора (0 - Активный, 1 - Запланированный, 2 - Неактивный) 
5930 + "activationTime": "2025-03-12T06:48:41.254Z", ~/~/ Определяет вид активации локаторов. ( 0 - сейчас, 1 - время активации) 
5931 + "validity": 0, ~/~/ Срок действия в днях (1-90).
5932 + "autoProlongation": true, ~/~/ Автопродление срока действия.
5933 + "creatorUserId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ ID пользователя, создавшего локатор.
5934 + "creatorUserName": "string", ~/~/ Имя пользователя, создавшего локатор.
5935 + "url": "string", ~/~/ Ссылка
5936 + "language": 0, ~/~/ Язык.
5937 + "vehiclesCount": 0, ~/~/ Количество объектов.
5938 + "geozonesCount": 0, ~/~/ Количество геозон.
5939 + "fieldsCount": 0 ~/~/ Количество полей.
6062 6062   }
6063 6063  ]
6064 6064  )))
6065 -)))
6066 6066  
6067 6067  
5945 +
6068 6068  == **Создание локатора** ==
6069 6069  
6070 6070  (% class="box successmessage" %)
... ... @@ -6085,24 +6085,6 @@
6085 6085   "autoProlongation": true, ~/~/ Автопродление срока действия.
6086 6086   "url": "string", ~/~/ Ссылка
6087 6087   "language": 0 ~/~/ Язык
6088 - "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Идентификатор клиента.
6089 - "vehiclesIds": [ ~/~/ Oбъекты
6090 - 0
6091 - ],
6092 - "geoIds": [ ~/~/ Геозоны
6093 - 0
6094 - ],
6095 - "fieldsIds": [ ~/~/ Поля
6096 - 0
6097 - ],
6098 - "showVehicleName": true, ~/~/ Наименование объекта
6099 - "showVehicleDirection": true, ~/~/ Направление движения на треке
6100 - "allowTrackReport": true, ~/~/ Трек
6101 - "showTrackTracing": true, ~/~/ Трассировка трека
6102 - "showSensors": true, ~/~/ Датчик
6103 - "availableMapLayers": [ ~/~/ Слои на карте (по умолчанию OpenStreetMap)
6104 - 0
6105 - ]
6106 6106  }
6107 6107  )))
6108 6108  
... ... @@ -6135,29 +6135,10 @@
6135 6135   "autoProlongation": true, ~/~/ Автопродление срока действия
6136 6136   "url": "string", ~/~/ Ссылка
6137 6137   "language": 0 ~/~/ Язык
6138 - "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Идентификатор клиента.
6139 - "vehiclesIds": [ ~/~/ Oбъекты
6140 - 0
6141 - ],
6142 - "geoIds": [ ~/~/ Геозоны
6143 - 0
6144 - ],
6145 - "fieldsIds": [ ~/~/ Поля
6146 - 0
6147 - ],
6148 - "showVehicleName": true, ~/~/ Наименование объекта
6149 - "showVehicleDirection": true, ~/~/ Направление движения на треке
6150 - "allowTrackReport": true, ~/~/ Трек
6151 - "showTrackTracing": true, ~/~/ Трассировка трека
6152 - "showSensors": true, ~/~/ Датчик
6153 - "availableMapLayers": [ ~/~/ Слои на карте (по умолчанию OpenStreetMap)
6154 - 0
6155 - ]
6156 6156  }
6157 -
6158 -
6159 6159  )))
6160 6160  
6001 +
6161 6161  Пример ответа:
6162 6162  
6163 6163  200 ~/~/ Success
... ... @@ -6321,11 +6321,12 @@
6321 6321  Id  ~/~/ Идентификатор поля
6322 6322  
6323 6323  
6165 +==== ====
6324 6324  
6325 -= **Раздел: Управление доступа к машинам** =
6167 +==== **Раздел: Управление доступа к машинам** ====
6326 6326  
6327 6327  
6328 -== Получение списка транспортных средств видимых пользователю ==
6170 +== Получение списка ID ==
6329 6329  
6330 6330  (% class="box infomessage" %)
6331 6331  (((
... ... @@ -6332,63 +6332,15 @@
6332 6332  **GET /api/v3/UserVisibleVehicles/{userId}**
6333 6333  )))
6334 6334  
6335 -Пример ответа:
6336 6336  
6337 -(((
6338 -{
6339 - "vehicleIds": [  ~/~/ Идентификаторы ТС
6340 - 0
6341 - ]
6342 -}
6343 -)))
6344 6344  
6345 6345  
6346 6346  
6347 -== Задает видимость транспортных средств пользователю ==
6348 6348  
6349 -(% class="box infomessage" %)
6350 -(((
6351 -**POST /api/v3/UserVisibleVehicles**
6352 -)))
6353 6353  
6354 -Пример запроса:
6355 6355  
6356 -(((
6357 -(((
6358 -{
6359 - "userId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",  ~/~/ Идентификатор пользователя
6360 - "vehicleIds": [ ~/~/ Идентификаторы ТС
6361 - 0
6362 - ]
6363 -}
6364 -)))
6365 6365  
6366 -(((
6367 -
6368 -)))
6369 6369  
6370 -(((
6371 -
6372 -)))
6373 -
6374 -(((
6375 -Пример ответа :
6376 -)))
6377 -
6378 -(((
6379 -
6380 -)))
6381 -
6382 -(((
6383 -200 ~/~/ Success
6384 -)))
6385 -)))
6386 -
6387 -
6388 -
6389 -
6390 -
6391 -
6392 6392  (% class="box" lang="en-US" style="text-align: center;" %)
6393 6393  (((
6394 6394  (% 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 г.