Управляем ботами Telegram из 1С - рассылка отчетов, пошаговое общение с чатами и произвольные скрипты

24.03.25

Интеграция - Мессенджеры и боты

Расширение с открытым исходным кодом для быстрой настройки различных сценариев использования Telegram-ботов.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Бесплатно
Управляем ботами Telegram из 1С - 0.11.4
.cfe 127,78Kb
40
40 Скачать бесплатно
Управляем ботами Telegram из 1С - 0.12.0
.cfe 132,44Kb
6
6 Скачать бесплатно



Всем привет! Данное расширение призвано сократить ваше время на написание логики работы с Telegram-ботами при различных сценариях их использования. На текущий момент осуществлена поддержка следующих сценариев:

  • Рассылка отчетов 1С
  • Поэтапное общение с пользователями
  • Исполнение произвольного кода

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

Расширение создано для конфигураций на основе БСП, в частности разработка велась под конфигурацию "Управление торговлей 11.5.16.74" (версия БСП 3.1.9.232).

Проект опенсорсный, с исходным кодом можно ознакомиться в репозитории на GitHub.

Содержание:


Настройка бота
 

Для начала работы нам понадобится, собственно, сам бот в Telegram. Если бота у вас еще нет, то создать его можно буквально в несколько кликов с помощью BotFather: начинаем чат с BotFather, вводим команду /newbot, придумываем для нашего бота наименование и идентификатор, и вуаля. Теперь у вас есть свой бот в Telegram. Сразу после создания бота вы получите его уникальный токен авторизации, который должен выглядеть примерно так: 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11

Теперь мы можем переключиться в 1С и продолжить настройку нашего бота там. После подключения расширения к вашей конфигурации в разделе "НСИ и администрирование" у вас появится новая подсистема "Управление ботами Telegram", где будет расположена ссылка на справочник "Боты Telegram". Создадим новый экземпляр справочника.



На вкладке "Настройки" укажем наименование бота и тот самый токен, что мы получили при создании бота.

Далее нужно будет определиться с вариантом взаимодействия между 1С и ботом Telegram - регламентное задание или с вебхук.

Если выбрать вариант с регламентным заданием, то для бота будет создано отдельное регламентное задание, которое по заданному расписанию будет обращаться к серверу Telegram, забирать оттуда все полученные ботом новые сообщения, после чего обрабатывать каждое из них в отдельности и отправлять ответы. Естественно, если мы хотим, чтобы отклик от бота на каждое введеное пользователем сообщение был бы быстрым, то расписание регламентного задания придется выставить с довольно высокой периодичностью.

Если для вас это проблема, то, конечно, лучше будет воспользоваться вариантом взаимодействия через вебхук, однако он потребует от вас некоторых дополнительных усилий, таких как публикация базы без авторизации, установка сертификата SSL и доменного имени. Подробнее узнать о том, как это все сделать, можно в замечательной статье от пользователя solidsun. В скобочках только замечу, что приведенный в статье вариант с бесплатными доменами от my.freenom.com более неактуален, вместо него могу посоветовать субдомены от duckdns. Кроме того, создавать HTTP-сервис, как это указано в статье, вам тоже не нужно - встроенный HTTP-сервис уже имеется в расширении.

Далее в форме настройки бота можно будет ввести полный URL-адрес вебхука, который будет выглядеть следующим образом:

Адрес публикации базы + /hs/telegram-bot-management/webhook/ + Имя бота

Например, https://mydomain.ru/1c-basename/hs/telegram-bot-management/webhook/my_bot_name

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

Теперь можем нажать на кнопку "Установить вебхук", и если все было настроено правильно, то в 1С будет выведено оповещение об успешной установке вебхука. С помощью соответствующих кнопок на форме можно также отключить вебхук или получить информацию об уже подключенном к боту вебхуке.
 

Чаты, команды и сценарии
 

Все взаимодействие между пользователем и ботом в Telegram осуществляется через команды. Задать список доступных команд бота можно на вкладке "Команды" формы справочника бота. Новую команду нужно добавить в соответствующую табличную часть на форме бота, присвоить ей имя, написанное на латинице по правилам Telegram, текстовое описание и сценарий. Для непосредственной установки команд или их очистки, т.е. для синхронизации с реальными командами бота в Telegram, можно воспользоваться соответствующими кнопками, расположенными над табличной частью.

Что такое сценарий? Это отдельный справочник, внутри которого прописывается вся логика поведения бота при получении им от пользователя той иной команды. На текущий момент имеется возможность создать три типа сценариев: "Отправка отчета", Общение" и "Произвольный сценарий". Кроме того, здесь же можно настроить дополнительные свойства поведения, такие как авторизация чатов или регламентное задание исполнения.

Информация о каждом пользователе, написавшим боту, будет автоматически сохраняться в справочнике "Чаты ботов Telegram". Каждый такой чат закреплен за конкретным ботом. 

 

Рассылка отчетов


Представим, что перед нами стоит следующая задача: при вызове пользователем определенной команды в Telegram, например /report, бот должен вернуть ответ в виде файла отчета, сформированного на стороне 1С.

Для решения этой задачи создадим новый сценарий с типом "Отправка отчета". На вкладке "Сценарий" в таком случае станет доступна табличная часть, в которой нужно будет указать вариант отчета, планируемый к отправке в качестве ответа, а также указать одно или несколько расширений файла.



Сохраняем сценарий, после чего в справочнике ботов на вкладке "Команды" добавляем новую команду /report, которой присваиваем сценарий отправки отчета. Дополнительно указываем краткое описание команды, которое будет отображаться у пользователей бота. Сохраняем изменения и далее нажимаем на кнопку "Установить команды", чтобы синхронизировать заданный список команд в 1С с реально доступными командами бота в Telegram. 



Проверяем результат:



Произвольный сценарий

Возможно, что вы хотите обработать полученную ботом команду неким особым образом. Это может быть что угодно. Например, вы хотите вернуть информацию о продажах за день в простом текстовом формате. Или, предположим, вы хотите вернуть сообщение с информацией об остатках средств на банковских счетах.

Реализовать абсолютно любую логику поведения бота можно с помощью сценария произвольного типа.

 



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

 
 Описание доступных переменных


Ниже пример произвольного скрипта для выдачи информации о продажах за день:

 
 Произвольный сценарий "Продажи за день с учетом открытых кассовых смен"

 


 

 

Поэтапное общение
 

Порой простого одинарного исполнения скрипта при обработке команд ботом бывает недостаточно. Зачастую требуется построить более сложную логику взаимодействия с пользователем, которая выстраивается в целую цепочку действий типа запрос-ответ: пользователь отправляет команду, а бот в ответ просит пользователя выполнить определенное действие. Так продолжается до тех пор, пока цепочка не будет полностью завершена.

Реализация такого варианта взаимодействия доступна с помощью сценария с типом "Общение".



Так же, как и в случае и произвольным сценарием, от вас потребуется прописать всю логику исполнения команды на встроенном языке 1С, однако теперь вы сможете ввести сразу несколько таких скриптов, разбив их по этапам.

Помимо предопределенных переменных сценария, в общении вам так же доступны особые методы, с помощью которых вы можете запоминать и позже восстанавливать определенные значения, указывать кнопки клавиатуры, а также переходить от одного этапа к другому.

 
 Доступные переменные и методы


Пример общения: прием заказов от клиентов

 

Рассмотрим пример построения сложного поэтапного общения между пользователем и ботом: мы создадим команду, с помощью которой можно можно будет оформлять заказы от клиентов. Весь процесс будет состоять из следующих действий:

  1. Пользователь запускает команду создания заказа
  2. В ответ бот приветствует пользователя и информирует его о том, что дальше от пользователя потребуется ввести в определенном формате артикулы и количество номенклатурных позиций, которые он планирует заказать.
  3. Пользователь вводит артикулы и номенклатуры
  4. Бот возвращает информацию о введенных товарах и добавляет их в корзину.
  5. Пункт 4 может повторяться до тех пор, пока пользователь не нажмет на кнопку "Завершить"
  6. После этого бот завершает подбор товаров и просит пользователя нажать на кнопку, чтобы отправить свой номер телефона
  7. Пользователь нажимает на кнопку "Отправить свой номер телефона"
  8. Бот создает заказ клиента и при необходимости нового контрагента, после чего сообщает пользователю номер заказа и его итоговую сумму.

Для того чтобы реализовать подобную логику мы создадим сценарий общения из трех этапов:

 
 Этап 1 - Приветствие
 
 Этап 2 - Ввод товаров и номера телефона
 
 Этап 3 - Создание заказа


Проверяем результат:


 

Авторизация пользователей

 

Вполне возможно, что какие-то из команд вашего бота будут предназначены для получения конфиденциальной информации, доступ к которой должен будет иметь только ограниченный круг лиц. Для того чтобы предотвратить несанкционированное использование команд бота вы можете включить у сценария признак "Требуется авторизация".



При включенном режиме обязательной авторизации пользователь должен будет получить право доступа на команду одним из двух способов:

1. Ввести одноразовый пароль, сгенерированный на стороне 1С

Просмотреть одноразовый пароль можно нажав на соответствующую кнопку в панели "Авторизация" справочника сценариев. Пароли генерируются в разрезе сценариев, т.е. на каждую защищенную команду нужно будет получать новый пароль. Частота обновления пароля - 60 секунд.


 

2. Отправить свою контактную информацию и дождаться подтверждения со стороны администратора 1С

Контактная информация пользователя в таком случае будет подвязана к вашему чату в 1С (каждый чат с ботом сохраняется в 1С в виде элемента справочника "Чаты ботов Telegram"). Администратор таким образом сможет идентифицировать чат по номеру телефона и задать ему доступ на защищенную команду в регистре сведений "Авторизованные чаты Telegram".


 

Персональные команды чата


Для каждого чата вы можете настроить его персональный набор команд. Делается это в форме справочника "Чаты ботов Telegram". Для непосредственной установки команд или их очистки, т.е. для синхронизации с реальными командами бота в Telegram, можно воспользоваться соответствующими кнопками, расположенными над табличной частью. После успешной установки в заданном чате будет доступен свой персональный набор команд, который будет отображаться только у него.


 

Исполнение сценариев по расписанию


Каждый из сценариев может выполняться самостоятельно по заданному расписанию. Настроить расписание можно на вкладке "Регламентное задание". Задать список чатов-получателей сообщения можно в соответствующей табличной части. Если список чатов оставить пустым, то сообщение будет разослано во все известные боту чаты.  


Что дальше?


С одной стороны, в документации Telegram есть еще масса интересных методов, которые можно было бы подкрутить к расширению. Из того, что первое приходит в голову:

  • Работа с сообщениями формата HTML и Markdown
  • Поддержка изображений, видео, аудио - причем не только отправка, но также их получение и последующая обработка
  • Создание опросов и сбор их результатов
  • Оптимизация работы с файлами

А с другой стороны было бы неплохо хорошенько причесать текущий функционал. Например, чтобы облегчить написание кода в режиме предприятия можно было подключить Monaco Editor, а также добавить простую кнопку проверки на синтаксические ошибки.

Все реализуемо, но тут уже дело упирается в вопрос, насколько это в целом будет востребовано, а соответственно будет ли мотивация дальше продолжать работу по этому проекту.

Кстати, чтобы поднять мотивацию автора на продолжение работы, не забудьте поставить плюсик статье на Инфостарт, а также звездочку репозиторию на GitHub. Предложения, а также сообщения об ошибках оставляйте в разделе Issues.

Спасибо за внимание!
 

Проверено на следующих конфигурациях и релизах:

  • Управление торговлей, редакция 11, релизы 11.5.16.74
  • 1С:ERP Управление предприятием 2, релизы 2.4.13.71

Telegram бот интеграция рассылка

См. также

SALE! 25%

Мессенджеры и боты Системный администратор Программист Бизнес-аналитик Пользователь Руководитель проекта Платформа 1С v8.3 Платные (руб)

Развитие популярного решения для интеграции мессенджера Telegram с нашей любимой 1С - конструктор чат-ботов в Телеграм.

15000 11250 руб.

18.06.2021    68766    323    273    

379

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 руб.

27.12.2021    40729    117    163    

211

Мессенджеры и боты Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Интеграция мессенджера WhatsApp и 1С: УНФ, УТ, КА, ERP - отправка и получение сообщений, картинок, файлов и видео прямо в 1С. Расширение работает с сервисом GreenApi.

15600 руб.

23.06.2023    11651    67    16    

42

Мессенджеры и боты Учет документов Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Платные (руб)

Расширение для согласования справочников и документов в основных типовых конфигурациях. Ролевая адресация, условная маршрутизация, чат-бот telegram, интеграция с n8n, последовательное и параллельное согласование, уведомление о новых задачах на почту, блокировка объектов в зависимости от статуса, запрет проведения в зависимости от статуса, автозапуск процессов согласования, отчеты по исполнительской дисциплине. Не требуется снятие конфигурации с поддержки. Настройка без программирования. Версия для 1cfresh.com. Сертификат 1С-Совместимо.

14900 руб.

15.11.2018    31933    40    49    

73

SALE! 50%

Мессенджеры и боты SMS рассылки Email рассылки Пользователь Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

Расширение 1С с полным набором инструментов для качественных транзакционных, триггерных и маркетинговых рассылок Email, SMS, WhatsApp, Telegram. Даже простые уведомления об оплате счетов способны существенно упростить сбор дебиторской задолженности. Применение всех возможностей прямого маркетинга выводит коммуникацию с клиентами, уровень сервиса и лояльность на новый уровень.

4800 2400 руб.

07.04.2014    86399    52    197    

137

Мессенджеры и боты Учет документов Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Сделайте взаимодействие сотрудников компании быстрым и удобным. В Личном кабинете в Телеграм сотрудники могут получать и выполнять задачи используя популярный мессенджер

11520 руб.

29.12.2022    8001    6    11    

12
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Viktor_Ermakov 374 24.03.25 13:00 Сейчас в теме
Отличная работа, спасибо!
2. artbear 1568 24.03.25 16:39 Сейчас в теме
Спасибо за работу в опенсорсе!
KamranV21; +1 Ответить
3. vladimir-89 26 25.03.25 07:57 Сейчас в теме
Отличная задумка!
Какая минимальная версия БСП необходима? Подключил на самописной конфигурации, но БСП старая и возникает ошибка при сохранении элемента справочника УБТ_БотыTelegram:

Метод объекта не обнаружен (JSONВЗначение)


Функцию JSONВЗначение вообще не находит во всей конфигурации.

Ошибка ссылается на процедуры и функции, связанные с вебхуками.
На старых версиях БСП, как вариант решения, нужно добавить функциональную опцию "Использовать вебхук", и по умолчанию вариант взаимодействия ставить "Регламентное задание".
4. vladimir-89 26 25.03.25 08:06 Сейчас в теме
(3) Нашел временное решение: изменить вариант взаимодействия на "вебхук", записать, затем изменить на "регламентное задание". Ошибка не появляется.
5. KamranV21 280 25.03.25 11:53 Сейчас в теме
(4) Добавил новую версию расширения 0.12.0 для поддержки более ранних версий БСП. Проверил на ERP 2.4.13.71 (БСП 3.1.3.303). В частности, методы работы JSON вынесены в отдельный общий модуль. Проверьте, пожалуйста, возможно вам она подойдет.

Скачать новую версию можете здесь, на Инфостарт, или на странице релиза.
Оставьте свое сообщение