Добавить 1c-cropwise.md
This commit is contained in:
parent
4151ba5141
commit
6d5ab245ec
105
1c-cropwise.md
Normal file
105
1c-cropwise.md
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
Для получения данных о факте выполнения работ из системы **Cropwise** через API и сохранения их в справочнике 1С, потребуется:
|
||||||
|
|
||||||
|
1. Вызвать REST-метод Cropwise API.
|
||||||
|
2. Получить JSON-ответ.
|
||||||
|
3. Обработать данные.
|
||||||
|
4. Сохранить в справочник 1С.
|
||||||
|
|
||||||
|
Ниже пример кода на языке 1С:Предприятие для внешней обработки или модуля управляемого приложения.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 🧾 Предположим:
|
||||||
|
- Cropwise предоставляет эндпоинт `/api/v1/work-completion` для получения фактов выполнения работ.
|
||||||
|
- Используется авторизация по токену (`Authorization: Bearer <token>`).
|
||||||
|
- Ответ в формате JSON.
|
||||||
|
- Данные содержат поля: `id`, `taskName`, `completionDate`, `worker`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ Пример кода (внешняя обработка)
|
||||||
|
|
||||||
|
```bsl
|
||||||
|
Процедура ПолучитьФактыВыполненияРабот(Команда)
|
||||||
|
|
||||||
|
// Параметры подключения
|
||||||
|
URL = "https://api.cropwise.com/api/v1/work-completion";
|
||||||
|
Токен = "ваш_токен_авторизации";
|
||||||
|
|
||||||
|
// Подготовка HTTP-запроса
|
||||||
|
HTTPСоединение = Новый HTTPСоединение("api.cropwise.com", 443, , , СертификатПровайдераHTTPS());
|
||||||
|
Запрос = Новый HTTPЗапрос(URL);
|
||||||
|
Запрос.ДобавитьЗаголовок("Authorization", "Bearer " + Токен);
|
||||||
|
Запрос.Метод = "GET";
|
||||||
|
|
||||||
|
// Выполнение запроса
|
||||||
|
Ответ = HTTPСоединение.Получить(Запрос);
|
||||||
|
|
||||||
|
Если Ответ.КодСостояния = 200 Тогда
|
||||||
|
|
||||||
|
// Парсинг JSON
|
||||||
|
JSONТекст = Ответ.ПолучитьПоток().Читать(БезПробелов).ПолучитьСтроку();
|
||||||
|
JSONДокумент = Новый JSONДокумент;
|
||||||
|
JSONДокумент.Прочитать(JSONТекст);
|
||||||
|
|
||||||
|
// Корневой массив
|
||||||
|
Результаты = JSONДокумент.Корень;
|
||||||
|
|
||||||
|
Для Каждого ЭлементJSON Из Результаты Цикл
|
||||||
|
|
||||||
|
// Создание элемента справочника
|
||||||
|
ЭлементСправочника = Справочники.ФактыВыполненияРабот.СоздатьЭлемент();
|
||||||
|
ЭлементСправочника.Код = JSONДокумент.ПолучитьЗначение("id", ЭлементJSON);
|
||||||
|
ЭлементСправочника.Наименование = JSONДокумент.ПолучитьЗначение("taskName", ЭлементJSON);
|
||||||
|
ЭлементСправочника.Дата = Формат(Дата(СокрЛП(Сред(JSONДокумент.ПолучитьЗначение("completionDate", ЭлементJSON), 1, 19))), "ДФ=ГГГГ-MM-ДД");
|
||||||
|
ЭлементСправочника.Исполнитель = JSONДокумент.ПолучитьЗначение("worker", ЭлементJSON);
|
||||||
|
|
||||||
|
// Запись элемента
|
||||||
|
Попытка
|
||||||
|
ЭлементСправочника.Записать();
|
||||||
|
Исключение
|
||||||
|
Прервать; // Логировать ошибку
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
Сообщить("Ошибка получения данных: " + Ответ.КодСостояния + " - " + Ответ.ТекстСостояния);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📁 Структура справочника "ФактыВыполненияРабот"
|
||||||
|
|
||||||
|
- **Код** — строка (например, идентификатор из Cropwise).
|
||||||
|
- **Наименование** — строка (название задачи).
|
||||||
|
- **Дата** — дата (дата завершения работы).
|
||||||
|
- **Исполнитель** — строка (ФИО или ID исполнителя).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔐 Авторизация
|
||||||
|
|
||||||
|
Если используется OAuth или другой способ аутентификации, то перед этим может понадобиться получить токен через отдельный запрос.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧪 Советы по тестированию
|
||||||
|
|
||||||
|
- Включите в код вывод JSON-ответа в журнал или файл для отладки.
|
||||||
|
- Убедитесь, что сертификат HTTPS корректно обрабатывается (особенно если стоит прокси/SSL-инспекция).
|
||||||
|
- Можно использовать объект `ЗаписьЖурналаРегистрации()` для логирования успешных/ошибочных записей.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔄 Расширение функционала
|
||||||
|
|
||||||
|
- Возможна синхронизация только новых записей (по дате/ID).
|
||||||
|
- Добавление периодического запуска через регламентное задание.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Если у тебя есть конкретные данные (формат ответа, структура JSON, метод API), могу адаптировать код под точную специфику.
|
Loading…
x
Reference in New Issue
Block a user