Найти в Дзене
DmitrievLab

Интеграция 1С с внешними сервисами: Telegram бот

"Общение" 1С с Telegram API происходит посредством HTTP-запросов через
REST-интерфейс платформы. В качестве протокола доступа используется OData 3.0, который позволяет стандартизировать запросы и ответы, упрощая интеграцию с внешними системами. Для возможности обращения к информационной базе через Интернет она должна быть опубликована на веб-сервере. Платформа поддерживает веб-серверы Apache и IIS. Доступные WEB-сервисы и HTTP-сервисы, каталог, параметры соединения настраиваются при публикации информационной базы. Telegram-бот формирует HTTP-запрос, например, GET для получения данных или POST для отправки. Он отправляется на URL веб-сервера, где анализируется и перенаправляется в платформу 1С. Платформа выполняет ряд проверок, таких как: Если все проверки успешно пройдены, то вызывается обработчик метода. Обработка HTTP запросов к информационной базе задается в HTTP-сервисах конфигурации.
Сервис содержит шаблоны URL, в которых определяется путь к ресурсу и параметры строки URL, назна
Оглавление

Как 1С взаимодействует с ботом

"Общение" 1С с Telegram API происходит посредством HTTP-запросов через
REST-интерфейс платформы. В качестве протокола доступа используется
OData 3.0, который позволяет стандартизировать запросы и ответы, упрощая интеграцию с внешними системами.

Для возможности обращения к информационной базе через Интернет она должна быть опубликована на веб-сервере.

Платформа поддерживает веб-серверы Apache и IIS. Доступные WEB-сервисы и HTTP-сервисы, каталог, параметры соединения настраиваются при публикации информационной базы.

Telegram-бот формирует HTTP-запрос, например, GET для получения данных или POST для отправки. Он отправляется на URL веб-сервера, где анализируется и перенаправляется в платформу 1С. Платформа выполняет ряд проверок, таких как:

  • Проверка соответствия URL запроса шаблону HTTP сервиса.
    Платформа 1С проверяет, соответствует ли URL запроса ожидаемому шаблону,
    который был заранее настроен в конфигурации системы.
  • Корректное заполнение заголовка Authorization
    Для предотвращения несанкционированного доступа к данным.
  • Вызываемый метод
    Платформа 1С анализирует, какой метод HTTP-запроса используется и проверяет, разрешён ли этот метод для
    данного URL. Например, если для определённого сервиса разрешён только
    GET-запрос, а бот отправляет POST-запрос, такой запрос будет отклонён.

Если все проверки успешно пройдены, то вызывается обработчик метода.

Обработка HTTP запросов к информационной базе задается в HTTP-сервисах конфигурации.
Сервис содержит шаблоны URL, в которых определяется путь к ресурсу и параметры строки URL, назначаются допустимые методы и их обработчики.

-2

Так, чтобы получить список активных пользователей информационной базы с именем Dzen, опубликованной на веб-сервере example.com, нужно отправить GET запрос к "https://example.com/Dzen/hs/telegramBot/Users", где:

  • https://example.com - это доменное имя сервера
  • Dzen - имя опубликованной информационной базы 1С
  • hs - обращение к REST интерфейсу платформы(HTTP-Services)
  • telegramBot - HTTP-сервис с соответствующим названием
  • onlineUsers - метод HTTP-сервиса

Аутентификация и настройка прав

Область применения 1С обычно связана с хранением конфиденциальных
данных, и нормы безопасности требуют использования механизмов
аутентификации и разделения прав пользователей. Правильным подходом
является создание отдельного пользователя для взаимодействия с каждым
внешним приложением. Это позволяет минимизировать риски утечки данных и обеспечивает контроль над доступом.

Данные авторизации передаются в заголовке "Authorization" HTTP запроса и представляют собой строку вида Логин:Пароль, кодированную в base64.

Для использования HTTP-сервисов требуется установить флаг "Использование" в настройках роли. Это позволяет контролировать, какие пользователи или приложения имеют доступ к определенным сервисам.

-3

В нашем случае так же добавим права на просмотр списка активных пользователей и использование отчетов.

Платформа вернет ответ с кодом 401 при ошибке авторизации, 403 при попытке обратиться к методу, для которого не разрешено использование.

Обработчики HTTP-методов

Функции обработки запросов задаются в модуле HTTP-сервиса, и обязательны для каждого метода.
В них передается единственный параметр ("Запрос" по умолчанию) с типом
HTTPСервисЗапрос.

-4
Обработчик метода GET ПолучитьОтчет
Обработчик метода GET ПолучитьОтчет

В данном случае имя отчета задается параметром URL запроса, а тело содержит параметры отчета в формате JSON, который преобразуется в структуру или соответствие.

Если тело запроса содержит некорректные данные, то исключение будет обработано в конструкции Попытка/Исключение.
Если платформой вызывается необработанное исключение в обработчике HTTP-метода, то возвращается HTTP-ответ со статусом 500 и описанием ошибки в теле.

Заключение

В этой статье рассмотрены ключевые аспекты интеграции 1С с внешней
системой, а именно с Telegram-ботом. Приложив немного времени и усилий,
вы сможете попрактиковаться, углубить свои знания и создать что-то
действительно интересное и полезное. Чтобы завершить описание этого
эксперимента, в ближайшее время мы опубликуем статью, посвящённую второй стороне интеграции — Telegram-боту.

Стоит отметить, что возможности интеграции 1С не ограничиваются Telegram-ботами. Взаимодействие между информационными системами объединяет
данные и функциональность из разных источников, создавая более сложные и
универсальные решения.

-6