Добавить 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