Telegram бот на 1С


Telegram бот на 1С в виде внешней обработки, встраиваемой в типовые 1С 8.3.

Предлагаю обработку Телеграм-бот на 1С. 

Простейший телеграм-бот на 1С. Бот получает сообщения от пользователей и возвращает ответ вида "Вы ИМЯ ФАМИЛИЯ написали: ТекстСообщенияПользователя".

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

Отличительные особенности обработки: 

-Реализована работа через прокси и показаны примеры заполнения прокси адресов.

-Сделан подсчет успешных соединений через разные прокси, сбор статистики работы прокси.

-Обработка сделана максимально компактно и просто, с использованием механизмов платформы последних версий (работа с JSON)

Тестовый бот для демонстрации работы с телеграм из 1С

При нажатии на кнопку "Прочитать" Бот получает от сервера Телеграм сообщения от пользователей и отображает их на форме.

При нажатии на кнопку "Прочитать и ответить" бот получает от сервера Телеграм сообщения, отображает их на форме, и пишет пользователям ответные сообщения в виде

"Вы ИМЯ ФАМИЛИЯ написали: ТекстСообщенияПользователя".

Описание формы обработки

Порядок работы с Ботом:

Необходимо зарегистрировать бота через @BotFather

Для создания бота в Telegram для этого создан специальный бот — @BotFather. Необходимо найти его в Телеграм, добавить в контакт и написать /start.

Введите команду /newbot — бот попросит придумать имя нашему новому боту (оно должно оканчиваться на «bot»). BotFather предоставит токен бота и ссылку для добавления бота в контакты. Проверьте полученный токен с помощью ссылки api.telegram.org/bot<TOKEN>/getMe (можно через браузер TOR для обхода блокировки).

Также вы получите ссылку на сайт Телеграм с описанием API.

Получение прокси сервера

Для работы с API Телеграм на территории России необходимо использовать зарубежный прокси-сервер. Прокси сервер можно найти бесплатный или купить.

Какой прокси использовать? — можно использовать как прокси IPv4 так и IPv6. IPv4 работает стабильнее, но он дороже. IPv6 дешевле, но работает менее стабильно: периодически запрос к серверу телеграм не проходит. В принципе это не страшно, так что можно сэкономить.

Для подключения использовал протокол https. Протокол SOCKS5 не заработал.

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

Настройки подключения обработки хранятся в модуле объекта в процедуре ИнициализацияПараметров а также в макете обработки МакетТаблицаПрокси, в которой хранятся параметры используемых прокси серверов.

Запуск обработки в интерактивном режиме

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

В обработке есть две кнопки

"Прочитать" — при нажатии на эту кнопку с сервера Телеграм будет прочитан список новых сообщений, которые пользователи написали боту. Сообщения, прочитанные таким образом перестанут считаться новыми и больше не будут читаться с сервера.

"Прочитать и ответить" — аналогично кнопке "Прочитать" + будет сформирован ответ бота на все сообщения пользователей вида "Вы ИМЯ ФАМИЛИЯ написали: ТекстСообщенияПользователя"

Запуск обработки в режиме встроенной обработки

Обработку можно встроить в типовые конфигурации 1С 8.3 как внешнюю обработку и там же указать периодический её запуск.

Типовой механизм запуска внешней обработки по расписанию

Формирование ответов пользователям

Ответы пользователям формируются в процедуре модуля объекта ОбработатьОтветы. В этой процедуре все сообщения, полученные ботом помещаются в таблицу значений и обрабатываются в запросе (при необходимости). Обработка сообщений пользователем при помощи запроса позволит вам сразу в запросе получать данные, которые вы ходите отправить из 1С пользователям.

ВебХуки

Следует иметь в виду, что существует более продвинутый способ работы с ботом телеграм, это использование ВебХуков. При этом телеграм при получении сообщения от пользователя обращается к поднятому Вами Веб-сервису (соответственно, нужно поднять веб-сервис), имеющему подпись (соответственно, нужно получить сертификат), что позволит отвечать пользователю мгновенно. К сожалению для 1С такой метод очень сложен, если вообще возможен. В этой обработке он не используется.

Обработка тестировалась на Управление торговлей, редакция 11 (11.4.5.143).

15 Comments

  1. PLAstic

    Большую часть времени телега работает без прокси. Уже давно. Хотя, может, зависит от провайдера.

    В статье нет ничего нового, поиском находится несколько более полных статей на ИСе.

    Reply
  2. budidich

    (1)

    Большую часть времени телега работает без прокси. Уже давно. Хотя, может, зависит от провайдера.

    В статье нет ничего нового, поиском находится несколько более полных статей на ИС

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

    Действительно, есть гораздо более полные статьи и примеры, но то, что я смотрел мне не понравилось — чрезмерно сложна и или устарело. Без допиливания не работало.

    Reply
  3. Maximum.proger

    Вебхуки отлично работают в 1с. Достаточно самоподписанных сертификатов и поднятого http-сервиса (потребуется опубликовать его так, чтобы он был виден из внешней сети, понятное дело, ну и сертификат надо будет добавить на ваш веб-сервер). Ничего сложного в этом методе нет. По самоподписанным сертификатам инфа есть как прямо в документации телеграм апи, так и на сторонних ресурсах, где описывается работа с телеграм (в основном вне 1с, но с точки зрения API разницы то и нет в любом случае)

    Reply
  4. qwed557

    (1) У меня тоже не работает подключение к api без прокси. Ни на работе ни дома не работает, провайдеры разные. Сама телега работает без прокси, а вот к api не подрубается(хоть через браузер, хоть из 1С)

    Reply
  5. budidich

    (3) Ок, спасибо. Постараюсь попробовать в ближайшее время.

    Reply
  6. budidich

    (4) Через браузер ТОР работает, конечно, но нам это мало поможет в 1С. Я потому и выложил, что пришлось покупать прокси, выбирать их (а они есть разные). В итоге когда отладил работу, и решил выложить обработку. IPv6 — прокси они в принципе, дешевые, но во-первых нигде не нашел ответа, будет ли через них работать, и потом надо заморачиваться с оплатой.

    Reply
  7. PLAstic

    (6) Я сделал проще. Хостинг в прибалтике, он стабильно работает с телегой. А дальше обмен по любому каналу/технологии с рабочей базой.

    Reply
  8. budidich

    (7) Сколько это стоит?

    Reply
  9. feva

    Эх только ушла из топа статейка: https://infostart.ru/public/1123971/ ))

    Reply
  10. budidich

    (9) Да, прикольно, особенно сайт с проксями. Я как-то сразу покупать пошел (по совету друзей). Запишу себе сайтик.

    Reply
  11. 🅵🅾️🆇

    (0) можете у меня посмотреть как работать с вебхуками и что для этого надо

    Заодно, вот, ПРАВИЛЬНО отправляйте табличные документы и файлы:

    https://gist.github.com/PlugFox/5f62e43c56941e4c5a244de2422ee7f8

    Reply
  12. budidich

    (11) Спасибо, это для того, чтобы отчеты рассылать как я понял.

    А можно поинтересоваться, как вы разработки на Гитхаб выкладываете? Вручную?

    Reply
  13. 🅵🅾️🆇

    (12) На IS куча статей посвященных git’у, вот, например, серия: https://infostart.ru/public/864097/

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

    Reply
  14. Region102
    К сожалению для 1С такой метод очень сложен, если вообще возможен.

    Данный метод достаточно прост. Публиковать ссылки не буду, кто хочет, тот найдет. Но у меня есть видео где я настраиваю прокси для webhook с самодописанными сертификатами. А в следующем видео я уже расскажу, как сделать прием запросов от webhook.

    Reply
  15. budidich

    (14) Да, ок, я понял, что это возможно, как дойдут руки, попробую сделать.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *