База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как переделать функцию для получения данных о топливе и моточасах доп. оборудова
- В этой теме 1 ответ, 2 участника, последнее обновление 2 дня, 20 часов назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
15 апреля 2026 в 12:29 #36436
Даю тебе функцию получения данных из веб-сервиса Автограф, которая предназначения для загрузки данных о работе шасси транспортного средства, надо переделать функцию таким образом чтобы получить данные о работе и остатках топлива дополнительного оборудования. В параметре TankBarrelFuelLevel получить уровень топлива, а в параметре EngineVOMotohours получить время работы.
-
15 апреля 2026 в 12:29 #36437
Чтобы переделать функцию получения данных из веб-сервиса Автограф для загрузки данных о работе и остатках топлива дополнительного оборудования, нужно в запросе и обработке результата ориентироваться на параметры:
— TankBarrelFuelLevel — уровень топлива дополнительного оборудования
— EngineVOMotohours — время работы дополнительного оборудованияЧаще всего в веб-сервисах Автограф данные приходят в виде JSON с параметрами датчиков (ресурсов) по оборудованию.
Примерный алгоритм переделки функции:
1. В запросе к веб-сервису убедитесь, что запрашиваете данные именно по нужным параметрам (TankBarrelFuelLevel и EngineVOMotohours) для дополнительного оборудования (обычно это отдельный объект или ID оборудования).
2. В обработке результата (парсинге JSON) ищите именно эти параметры.
3. Запишите значения в соответствующие переменные.
Пример кода на 1С (BSL), как это может выглядеть (упрощённо):
1С (Код)12345678910111213141516171819202122232425262728293031323334353637383940Функция ПолучитьДанныеДопОборудования(ИДОборудования, ДатаНачала, ДатаОкончания) Экспорт// Формируем URL запроса к веб-сервису АвтографURLЗапроса = "https://api.autograph.ru/getData?equipmentId=" + ИДОборудования +"&from=" + Формат(ДатаНачала, "ДФ=yyyy-MM-ddTHH:mm:ss") +"&to=" + Формат(ДатаОкончания, "ДФ=yyyy-MM-ddTHH:mm:ss");// Создаем HTTP соединениеHTTPСоединение = Новый HTTPСоединение("api.autograph.ru", 443, , , , , Новый ЗащищенноеСоединениеOpenSSL());// Выполняем запросОтвет = HTTPСоединение.Получить(URLЗапроса);Если Ответ.КодСостояния <> 200 ТогдаОшибка("Ошибка получения данных: " + Ответ.КодСостояния);КонецЕсли;ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();// Парсим JSONЧтениеJSON = Новый ЧтениеJSON;ЧтениеJSON.ОткрытьСтроку(ТелоОтвета);ДанныеJSON = ПрочитатьJSON(ЧтениеJSON, Истина);ЧтениеJSON.Закрыть();// Ищем параметры TankBarrelFuelLevel и EngineVOMotohoursУровеньТоплива = Неопределено;ВремяРаботы = Неопределено;Для Каждого Параметр Из ДанныеJSON.Параметры ЦиклЕсли Параметр.Код = "TankBarrelFuelLevel" ТогдаУровеньТоплива = Параметр.Значение;ИначеЕсли Параметр.Код = "EngineVOMotohours" ТогдаВремяРаботы = Параметр.Значение;КонецЕсли;КонецЦикла;Возврат Новый Структура("УровеньТоплива, ВремяРаботы", УровеньТоплива, ВремяРаботы);КонецФункцииЕсли у вас есть исходный код функции, пришлите, я помогу адаптировать именно его.
Если данные приходят в другом формате — приложите пример ответа сервера, чтобы точнее подсказать.
Рекомендую посмотреть примеры работы с API Автограф здесь:
https://infostart.ru/public/672433/ (пример работы с HTTP-запросами и JSON)
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.