Group of successful  smiling  business people during daily work in modern co-working space

API 1С: ERP: расширение функционала и интеграция с внешними системами

Содержание:

В современном бизнесе система 1С: ERP — это не просто система учета, а центральный хаб данных, который должен взаимодействовать с CRM, маркетплейсами, бухгалтерскими сервисами и другими платформами. В этой статье разберем, как API системы 1С: ERP позволяет расширять возможности системы и интегрировать ее с внешними сервисами, а также рассмотрим три ключевых способа подключения: COM, OData и REST API.

1. Зачем нужно API в 1С: ERP

Система 1С: ERP — мощный инструмент, который должен связываться с другими программами, к примеру для:

– Автоматизировании рутинных операций(выгрузка отчетов, создание документов).

– Интегрирования с CRM, маркетплейсами, ERP-системами.

– Связи с мобильными приложениямина основе данных из 1С.

Но не все API одинаковы. Рассмотрим три самых частых подхода к интеграции.

2. Три способа подключения к системе 1С: ERP

2.1. COM-соединение (устаревший, но надежный метод)
COM (Component Object Model) — технология Microsoft для локального взаимодействия программ. В 1С используется для автоматизации из внешних приложений (Excel, C#, Python).

Как работает?

– 1С запускается как COM-объект.

– Внешняя программа (например, Python-скрипт) подключается к 1С и выполняет код на встроенном языке.

Плюсы:
✅ Работает даже в старых версиях 1С.
✅ Высокая скорость (локальное подключение).
✅ Полный доступ к данным (можно выполнять любые запросы).

Минусы:
❌ Только для Windows (нет поддержки Linux/macOS).
❌ Требует установленного 1С на машине.
❌ Менее безопасен (нет встроенной аутентификации).

Пример:

// Создаем COM-соединение с Excel

Excel = Новый COMОбъект(“Excel.Application”);

Excel.Visible = Истина; // Показать Excel

Книга = Excel.Workbooks.Add(); // Новая книга

Лист = Книга.Worksheets(1); // Первый лист

 

// Запись данных в Excel

Лист.Cells(1, 1).Value = “Номенклатура”;

Лист.Cells(1, 2).Value = “Количество”;

 

// Чтение данных из 1С и запись в Excel

Запрос = Новый Запрос;

Запрос.Текст = “ВЫБРАТЬ Наименование, Остаток ИЗ Справочник.Номенклатура”;

Результат = Запрос.Выполнить().Выгрузить();

 

Для Сч = 1 По Результат.Количество() Цикл

    Лист.Cells(Сч+1, 1).Value = Результат[Сч-1].Наименование;

    Лист.Cells(Сч+1, 2).Value = Результат[Сч-1].Остаток;

КонецЦикла;

Когда использовать?

– Если нужно быстро автоматизировать задачи на Windows.

– Если REST API недоступен(например, в 1С: ERP 8.2).

2.2. OData (стандартизированный REST для 1С)

Что это?
OData — протокол для доступа к данным через HTTP. В системе 1С: ERP встроен начиная с версии 8.3.10+.

Как работает?

– Данные доступны по URL (/odata/standard.odata/).

– Поддерживает сложные запросы($filter, $expand).

– Возвращает данные в JSON/XML.

Плюсы:
✅ Стандартизированный синтаксис (легко интегрировать с Power BI, SAP).
✅ Метаданные (/$metadata) — клиент сам понимает структуру API.
✅ Поддержка связей между таблицами ($expand=Договоры).

Минусы:
❌ Сложнее REST API (нужно учить синтаксис $filter).
❌ Не все конфигурации 1С поддерживают OData.

Пример запроса:

http

GET /odata/standard.odata/Document_Заказ?$filter=Дата ge 2024-01-01&$select=Номер,Сумма

Когда использовать?

– Если нужна интеграция с BI-системами(Power BI, Tableau).

– Если система 1С: ERP поддерживает OData(проверьте в настройках)

2.3. REST API (гибкость и простота)

Что это?
REST API — это HTTP-интерфейс для работы с 1С без строгих стандартов. Доступен в 1С: ERP 2.x.

Как работает?

– Данные передаются в JSON.

 – Используются стандартные HTTP-методы (GET, POST, PUT, DELETE).

– Аутентификация через Basic Auth или OAuth 2.0.

Плюсы:
✅ Проще, чем OData (нет сложных параметров).
✅ Подходит для мобильных приложений.
✅ Можно использовать с любым языком (Python, JavaScript, C#).

Минусы:
❌ Нет стандартизации (каждый API свой).
❌ Меньше возможностей для фильтрации, чем в OData.

Вызов внешнего REST API из 1С:

// Отправка данных в CRM

Функция ОтправитьВCRM(ДанныеКонтрагента)

   

    // Подготовка данных

    Тело = Новый Структура;

    Тело.Вставить(“name”, ДанныеКонтрагента.Наименование);

    Тело.Вставить(“inn”, ДанныеКонтрагента.ИНН);

    Тело.Вставить(“phone”, ДанныеКонтрагента.Телефон);

   

    // Создаем HTTP-запрос

    Запрос = Новый HTTPЗапрос(“https://crm.example.com/api/v1/customers”);

    Запрос.УстановитьТелоИзСтроки(JSON.stringify(Тело));

    Запрос.Заголовки.Вставить(“Content-Type”, “application/json”);

    Запрос.Заголовки.Вставить(“Authorization”, “Bearer ” + КлючAPI);

   

    // Отправляем POST-запрос

    HTTP = Новый HTTPСоединение(,,,Истина); // Используем HTTPS

    Ответ = HTTP.Отправить(Запрос, “POST”);

   

    // Обрабатываем ответ

    Если Ответ.КодСостояния = 200 Тогда

        Возврат Истина;

    Иначе

        Сообщить(“Ошибка: ” + Ответ.ПолучитьТелоКакСтроку());

        Возврат Ложь;

    КонецЕсли;

   

КонецФункции

Когда использовать?

– Если OData не поддерживаетсяили слишком сложен.

– Если нужна быстрая интеграция с веб-сервисами.

Дополнительная информация

3. Что выбрать: COM, OData или REST API

Критерий

COM

OData

REST API

Поддержка ОС

Только Windows

Любая

Любая

Скорость

Высокая (локально)

Средняя

Средняя/Низкая

Сложность

Средняя

Высокая

Низкая

Гибкость

Полный доступ к 1С

Стандартные запросы

Зависит от разработчика

Безопасность

Низкая

Средняя

Высокая

Вывод:

– COM— если нужно локальное быстрое решение под Windows.

– OData— если важна стандартизация и интеграция с BI.

– REST API— если нужна простота и кроссплатформенность.

4. Практические кейсы интеграции с внешними системами

4.1. Система 1С: ERP + Wildberries (REST API)

– Задача:Автоматически выгружать остатки и заказы.

– Решение:

// Получение заказов с Wildberries

Функция ПолучитьЗаказыWB()

    // Настройки подключения

    КлючAPI = “ваш_api_ключ”;

    URL = “https://suppliers-api.wildberries.ru/api/v2/orders”; 

    // Формируем запрос

    Запрос = Новый HTTPЗапрос(URL);

    Запрос.Заголовки.Вставить(“Authorization”, КлючAPI);

    // Отправляем запрос

    HTTP = Новый HTTPСоединение();

    Ответ = HTTP.Получить(Запрос);

    // Обрабатываем ответ

    Если Ответ.КодСостояния = 200 Тогда

        Данные = ПрочитатьJSON(Ответ.ПолучитьТелоКакСтроку());

        // Создаем документы в 1С

        Для каждого Заказ Из Данные Цикл

            НовыйЗаказ = Документы.ЗаказПокупателя.СоздатьДокумент();

            НовыйЗаказ.Дата = ТекущаяДата();

            НовыйЗаказ.Контрагент = Справочники.Контрагенты.НайтиПоИНН(Заказ.inn);

            // … заполнение других полей

            НовыйЗаказ.Записать();

        КонецЦикла;       

        Возврат Истина;

    Иначе

        Сообщить(“Ошибка при получении заказов: ” + Ответ.ПолучитьТелоКакСтроку());

        Возврат Ложь;

    КонецЕсли;

КонецФункции

4.2. Система 1С: ERP + Power BI (OData)

– Задача:Построить дашборд по продажам.

– Решение:

— В Power BI

Источник = OData.Feed(“https://erp.company.com/odata/standard.odata/Document_Продажи”)

4.3. Система 1С: ERP + Excel (COM)

– Задача:Ежедневная выгрузка отчета в Excel.

– Решение:

Set v8 = CreateObject(“V83.COMConnector”)

Set conn = v8.Connect(“File=””C:\base\erp”””, “login”, “pass”)

conn.ВыгрузитьОтчетВExcel(“Продажи”, “C:\report.xlsx”)

Заключение:

Система 1С: ERP — это не изолированная система, а центр данных бизнеса. С помощью COM, OData и REST API можно:

– Автоматизировать рутину.

– Подключать CRM, маркетплейсы, аналитику.

– Создавать мобильные приложения.

Какой метод выбрать?

– COM— для локальных задач на Windows.

– OData— для аналитики и интеграции с корпоративными системами.

REST API — для веб-интеграций и простых сценариев.

Семёнкин Александр,

Специалист компании ООО “Кодерлайн”