From 6d5ab245ec2608e2352d403e1218170982b64fee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9=20=D0=A2=D0=BE?= =?UTF-8?q?=D1=80=D0=BE=D0=B2?= Date: Mon, 9 Jun 2025 07:22:23 +0000 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=201c-cropwise.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1c-cropwise.md | 105 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 1c-cropwise.md diff --git a/1c-cropwise.md b/1c-cropwise.md new file mode 100644 index 0000000..78b6b38 --- /dev/null +++ b/1c-cropwise.md @@ -0,0 +1,105 @@ +Для получения данных о факте выполнения работ из системы **Cropwise** через API и сохранения их в справочнике 1С, потребуется: + +1. Вызвать REST-метод Cropwise API. +2. Получить JSON-ответ. +3. Обработать данные. +4. Сохранить в справочник 1С. + +Ниже пример кода на языке 1С:Предприятие для внешней обработки или модуля управляемого приложения. + +--- + +### 🧾 Предположим: +- Cropwise предоставляет эндпоинт `/api/v1/work-completion` для получения фактов выполнения работ. +- Используется авторизация по токену (`Authorization: Bearer `). +- Ответ в формате 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), могу адаптировать код под точную специфику. \ No newline at end of file