Добавить 1c-cropwise.md

This commit is contained in:
Дмитрий Торов 2025-06-09 07:22:23 +00:00
parent 4151ba5141
commit 6d5ab245ec

105
1c-cropwise.md Normal file
View 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), могу адаптировать код под точную специфику.