projects/1c-cropwise.md

105 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Для получения данных о факте выполнения работ из системы **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), могу адаптировать код под точную специфику.