projects/1c-cropwise.md

5.5 KiB
Raw Permalink Blame History

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

Пример кода (внешняя обработка)

Процедура ПолучитьФактыВыполненияРабот(Команда)
    
    // Параметры подключения
    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), могу адаптировать код под точную специфику.