Вся лирика и документация в следующей статье, а пока:
Быстрый старт
Системные требования:
- Любая конфигурация с БСП (используется механизм дополнительных отчетов и обработок);
- Возможность публикации HTTP-сервиса; (upd: не требуется в новых версиях)
- Прямые руки v.1.0 и выше
Как начать:
- Создать нового бота Телеграм через бота BotFather и получить токен;
- Скачать расширение Боцман и подключить его к конфигурации;
- Опубликовать http-сервис с корневым URL "tgbot";
- Создать внешнюю обработку, реализующую экспортную функцию модуля Обработать(Сессия, Данные);
- Добавить обработку в справочник "Дополнительные отчеты и обработки";
- Перейти в настройку ботов и указать адрес публикации ИБ;
- Добавить элемент в справочник "Боты Телеграм", указав в качестве обработки вашу обработку, а в качестве токена - токен вашего бота и установить вебхук (кнопка с колокольчиком в элементе справочника);
- Наслаждаться.
Основные сложности
Создание бота в Телеграм
Если вы никогда не создавали ботов в телегам - этот абзац для вас. Для создания ботов в Телеграм используется бот BotFather. Найдите его в вашем Телеграм и отправьте команду /newbot. Вам будет предложено ввести название вашего бота (это то, как он будет виден в списке чатов пользователей) и имя пользователя - уникальное имя в Телеграм, заканчивающееся на bot. Например ExampleBot или example_bot. Для наглядного примера я использовал имя echo_1c_bot:
Создание внешней обработки
Для того, чтобы вашу обработку можно было загрузить в справочник Внешние отчеты и обработки, она должна содержать экспортную функцию СведенияОВнешнейОбработке в модуле обработки. Минимально необходимое:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("1.0.0.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.БезопасныйРежим = Ложь;
Возврат ПараметрыРегистрации;
КонецФункции
Для того, чтобы ваша обработка могла работать как обработка для бота Телеграм, она должна содержать функцию Обработать(Сессия, Данные). Пример:
Функция Обработать(Сессия, Данные) Экспорт
Боцман.ОтправитьСообщение(Сессия, Боцман.Получить(Данные, "message.text"));
Возврат Истина;
КонецФункции
Эта функция просто отправит полученный текст обратно пользователю. Итого, минимальный модуль обработки должен выглядеть так:
Добавление вашего бота в конфигурацию
Перед добавлением бота задайте адрес публикации ИБ. Это путь публикации именно самой базы без "hs" и корневого URL. Например у меня это https://web1c.losthost.online/telegram/. После этого нажмите кнопку "Создать":
Откроется форма добавления бота, где нужно будет обязательно задать Наименование вашего бота, токен, полученный при создании бота на шаге 1 и выбрать вашу обработку из справочника Внешние отчеты и обработки. После этого можно нажать кнопку "Установить вебхук":
Всё. Ваш бот готов и функционирует.
Заключение
Коллеги, если есть интерес к этой разработке - выложу более подробную документацию с описанием всех экспортируемых функций и примерами ботов. Описанный в статье бот доступен и работает: @echo_1c_bot. Также вы можете попробовать @BarcodeMasterBot, созданный тоже с помощью расширения Боцман.
Обновление от 07.12.2022
В файле последняя версия расширения и пример эхо-бота. Файл тот же, что и в расширенной статье: Подробнее о создании ботов Телеграм с помощью расширения Боцман