Простая работа с API Fort monitor для получения отчетов по автотранспорту
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Этап 1. Получение сессии. Используем метод Post
cЗапрос = СтрШаблон("{""login"": ""%1"",""password"": ""%2"",""lang"": ""ru-ru"",""timezone"": 3}", Логин, Пароль);
Прокси = Новый ИнтернетПрокси(Ложь);
СоединениеHTTP = Новый HTTPСоединение(Сервер, 443, Логин, Пароль, Прокси,, Новый ЗащищенноеСоединениеOpenSSL());
Заголовки = Новый Соответствие;
Заголовки.Вставить("accept","application/json");
Заголовки.Вставить("Content-Type","application/json;charset=utf-8");
ЗапросHTTP = Новый HTTPЗапрос("api/integration/v1/connect", Заголовки);
ЗапросHTTP.УстановитьТелоИзСтроки(cЗапрос);
Результат = СоединениеHTTP.ОтправитьДляОбработки(ЗапросHTTP);
КодСостояния = Результат.КодСостояния;
Если КодСостояния = 200 Тогда
SessionId = Результат.Заголовки.Получить("Sessionid");
2. Получение списка компаний для учетной записи
Прокси = Новый ИнтернетПрокси(Ложь);
СоединениеHTTP = Новый HTTPСоединение(Сервер, 443, Логин, Пароль, Прокси,, Новый ЗащищенноеСоединениеOpenSSL());
Заголовки = Новый Соответствие;
Заголовки.Вставить("accept","application/json");
Заголовки.Вставить("Content-Type","application/json;charset=utf-8");
Заголовки.Вставить("SessionId", SessionId);
ЗапросHTTP = Новый HTTPЗапрос("api/integration/v1/getcompanieslist", Заголовки);
Результат = СоединениеHTTP.Получить(ЗапросHTTP);
КодСостояния = Результат.КодСостояния;
Если КодСостояния = 200 Тогда
Чтение = Новый ЧтениеJSON;
Чтение.ОткрытьПоток(Результат.ПолучитьТелоКакПоток());
Данные = ПрочитатьJSON(Чтение);
Чтение.Закрыть();

3. Получение списка объектов по выбранной компании
сСервис = СтрШаблон("api/integration/v1/getobjectslist?=&companyId=%1", Формат(КомпанияИД, "ЧГ=0"));
Прокси = Новый ИнтернетПрокси(Ложь);
СоединениеHTTP = Новый HTTPСоединение(Сервер, 443, Логин, Пароль, Прокси,, Новый ЗащищенноеСоединениеOpenSSL());
Заголовки = Новый Соответствие;
Заголовки.Вставить("accept", "application/json");
Заголовки.Вставить("SessionId", SessionId);
ЗапросHTTP = Новый HTTPЗапрос(сСервис, Заголовки);
Результат = СоединениеHTTP.Получить(ЗапросHTTP);
КодСостояния = Результат.КодСостояния;
Если КодСостояния = 200 Тогда
Чтение = Новый ЧтениеJSON;
Чтение.ОткрытьПоток(Результат.ПолучитьТелоКакПоток());
Данные = ПрочитатьJSON(Чтение);
Чтение.Закрыть();

4. Получение отчета по выбранному объекту
sParam = "start_move_time;start_address;duration;dist;max_speed;run_time;stop_time;stop_move_time;stop_address";
sObjuids = Формат(ОбъектИД, "ЧГ=0");
sDate_to = Формат(ДатаДо-10800, "ДФ=yyyy-MM-ddTHH:mm:ss");
sDate_from = Формат(ДатаОт-10800, "ДФ=yyyy-MM-ddTHH:mm:ss"); // минус 3 часа
сСервис = СтрШаблон("api/integration/v1/getobjectsreport?param=%1&split=day&objuids=%2&date_to=%3&date_from=%4",
sParam, sObjuids, sDate_to, sDate_from);
Прокси = Новый ИнтернетПрокси(Ложь);
СоединениеHTTP = Новый HTTPСоединение(Сервер, 443, Логин, Пароль, Прокси,, Новый ЗащищенноеСоединениеOpenSSL());
Заголовки = Новый Соответствие;
Заголовки.Вставить("accept", "application/json");
Заголовки.Вставить("SessionId", SessionId);
ЗапросHTTP = Новый HTTPЗапрос(сСервис, Заголовки);
Результат = СоединениеHTTP.Получить(ЗапросHTTP);
КодСостояния = Результат.КодСостояния;
Если КодСостояния = 200 Тогда

dist - Дистанция (пробег за выбранный период)
run_time - время на линии(в сек.)
duration - общее время(в сек.)
Протестировано на платформе 1С:Предприятие 8.3 (8.3.27.1688)
Реализовано под конфигурации на управляемых формах. Наличие БСП значения не имеет.
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.210.8
- 1С:Комплексная автоматизация 2, релизы 2.6.2.68
- Зарплата и управление персоналом, редакция 3.1, релизы 3.1.39.53
- Управление торговлей, редакция 11, релизы 11.6.2.68
- 1С:ERP Управление предприятием 2, релизы 2.6.2.68
Вступайте в нашу телеграмм-группу Инфостарт