Телеграм-бот для 1С

Обработка позволяет отправлять произвольные сообщения или файлы из 1С в телеграм по запросу пользователя. Принимать файлы от пользователей и сохранять их на диск. Доступна работа с несколькими ботами.

Это готовое решение для 1С
Установка в базу занимает пару минут
Не влияет на обновления
Конфигурация остается "на замке", обновляетесь в штатном режиме
Бесплатная техподдержка
В течение трех месяцев
Артикул 792
Обновлено 03.07.2023
Исходный код Открыт
Изменение конфигурации Не требуется
Ограничение Не подходит для 1С:Фреш
Покупок 2

4000 руб

К ОПЛАТЕ ЗАКАЗАТЬ СЧЕТ
разработка также доступна по подписке Премиум

Универсальный телеграм-бот для 1С. Будет работать с любой конфигурацией на управляемых формах на базе БСП (библиотека стандартных подсистем). От БСП требуется только наличие справочника «Дополнительные отчеты и обработки».

Возможности бота:

  • Отправка произвольных текстовых ответов на запрос пользователя,
  • Отправка файлов по запросу пользователя,
  • Прием файлов  от пользователя и сохранение их на диск,
  • Ручная отправка произвольного сообщения или файла прямо из 1С в телеграм,
  • Доступна работа с несколькими ботами.

При описании бота будут использоваться следующие понятия:

Бот – это программа, работающая через мессенджер Телеграм. Работает по принципу вопрос – ответ. Например, мы ему «Сколько дней отпуска у нас осталось», а он нам в ответ количество оставшихся дней отпуска. Или мы ему «На сколько мы продали вчера», а он нам в ответ отчет по продажам. Ключевой момент в том, что для работы бота не требуется вмешательство пользователя.

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

Команды бота – это конкретные действия бота. Например, если боту пришло сообщение «продажи», то он в ответ должен выслать отчет по продажам. Или если пришло сообщение «инфо», то он в ответ отправляет текстовое описание организации с контактными данными и т.п. Все команды настраиваются вами самостоятельно.

Создание бота в телеграм

Чтобы создать бота в телеграм, нужно выполнить следующие шаги:

  1. Найти в телеграм отца всех ботов  - BotFather

отец ботов

2. Запустить его и отправить команду /newbot

команда новый бот

3. Ввести произвольное имя бота:

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

4. Теперь нужно ввести username бота (техническое имя бота). Оно обязательно должно быть только на латинице и заканчиваться на bot, например super_mega_3s_bot

техническое имя бота

5. Бот создан. Нужно скопировать токен из последнего сообщения, он будет использоваться при настройке бота в 1С.

Запуск бота

Сначала нужно подключить внешнюю обработку в 1С.

После подключения будет доступно 2 варианта работы бота:

  • автоматическое выполнение,
  • ручное управление.

дополнительная обработка телеграм бот

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

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

Поэтому в файловой базе лучше использовать ручное управление. Будет открыто главное окно бота. В нем нужно нажать на кнопку «Запустить бота» и убедиться, что была включена галочка «Бот запущен».

главное окно телеграм бота

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

Если закрыть форму, то выполнение бота будет остановлено. Также можно выключить бота, нажав на кнопку «Остановить бота».

Не нужно одновременно запускать бота и через регламентное задание и через открытую форму, иначе пользователи могут дважды получать ответы на свои команды.

Также не нужно несколько раз запускать обработку в одной информационной базе.

И не нужно добавлять одного бота в разные информационные базы.

Настройки ботов хранятся в служебных элементах справочника «Дополнительные отчеты и обработки». Не нужно их удалять.

Обработка команд бота выполняется по следующему алгоритму:

  1. Через заданные промежутки времени (период обновления для ручного управления и расписание регламентного задания для автоматического) бот выполняет запрос на сервер телеграмм (api.telegram.org) для получения новых сообщений.
  2. Выполняется обработка полученных сообщений в соответствии с настроенными командами бота (отправляются ответы на команды пользователей). Если используется несколько ботов, то они обрабатываются последовательно.

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

Также доступно разовое выполнение бота. Для этого нужно в меню выбрать «Еще – Выполнить сейчас».

разовое выполнение бота

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

Все ошибки при работе бота регистрируются в журнале регистрации с событием «ТелеграмБот».

регистрация ошибок при работе телеграм бота в журнале регистрации

Добавление бота в 1С

Для добавления бота в 1С нужно в главном окне бота нажать на кнопку «Боты».  Данная кнопка доступна только для пользователей с полными правами.

добавление телеграм бота в 1с

В результате будет открыт список всех ботов.

список всех ботов

Затем нужно нажать на кнопку «Добавить» и ввести имя и токен. Имя произвольное, но в дальнейшем его нельзя будет изменить. Токен нужно скопировать из последнего сообщения от BotFather.

имя и токен нового бота

Затем нужно нажать ОК – и бот будет добавлен в 1С.

Для удаления бота из 1С нужно нажать на кнопку «Удалить». Будет удалена только настройка бота в  1С, сам бот в телеграм останется.

Чтобы временно отключить бота, можно очистить у него токен.

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

Пользователи бота

Чтобы пользователи могли работать с ботом они должны найти его в телеграмм и запустить, нажав кнопку «Запустить». Затем  нужно отправить любое сообщение. После этого пользователь будет добавлен в список новых пользователей бота. Такие пользователи пока не могут работать с ботом, это только кандидаты на доступ к нему.

Чтобы дать право на работу с ботом, необходимо в списке ботов выделить нужного бота и нажать на кнопку «Пользователи».

добавление прав пользователям на работу с ботом

Будет открыто окно с  пользователями бота.

список пользователей телеграм бота

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

Если пользователю нужно предоставить доступ, то нужно выделить его и нажать на кнопку «Разрешить». Пользователь будет перенесен в нижний список. Это список пользователей, у кого есть доступ к боту.

Кнопка «Удалить» удаляет пользователя из списка кандидатов, без предоставления прав. Чтобы пользователь снова появился в этом списке нужно еще раз отправить боту любое сообщение.

Чтобы запретить пользователю работать с ботом, нужно выделить его в нижнем списке пользователей и нажать на кнопку «Запретить». Пользователь будет удален из списка разрешенных пользователей.

В поле «Сообщение о нарушении прав доступа» нужно указать сообщение, которое будет отправлено пользователю, если у него нет прав доступа к боту. По умолчанию используется сообщение «Нарушение прав доступа».

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

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

Команды бота

Для настройки команд бота нужно выделить бота и нажать на кнопку «Команды».

настройка команд бота

Будет открыт список команд бота.

список команд бота в 1с

Команда состоит из собственно команды и параметра команды. Все что идет до первого пробела в текстовом сообщении считается командой. После пробела – параметром команды.

Например, если отправить боту сообщение «отчет Продажи», то «отчет» будет командой, а «Продажи» - параметром команды.

В списке команд нужно заполнить следующие колонки:

Команда – команда, которую пользователь должен отправить боту.

Тип – тип команды. На данный момент доступно 2 типа:

  • Текст – это произвольное текстовое сообщение,  которое будет отправлено в ответ на команду.
  • Файл – здесь нужно указать каталог, в котором хранятся файлы. Имя файла пользователь должен будет указать после команды, через пробел. В результате пользователю будет отправлен этот файл.

Для заполнения настроек команды нажмите на 3 точки в колонке «Настройки».

заполнение настроек команды бота в 1с

Если установлена галочка «Отправлять список файлов если не указан параметр», то если пользователь отправит только команду, ему в ответ будет выслан список всех файлов в виде клавиатуры.

Если в каталоге только один файл и установлена галочка «Отправлять список файлов, если не указан параметр», то, если с командой не было указано имя файла, то пользователю сразу будет отправлен этот файл.

В верхней части можно указать «Сообщение о неправильной команде». Это то сообщение, которое будет отправлено пользователю, если он отправит несуществующую команду.

Если заполнено поле «Каталог для загружаемых файлов», то пользователи смогут отправлять файлы боту. Эти файлы будут помещены в указанный каталог на диске. Для каждого пользователя будет создан свой подкаталог с именем ФИО(Логин). Например, для пользователя Иванов с логином Ivanov подкаталог будет называться Иванов(Ivanov). Если в этом каталоге уже будет файл с таким именем, то в конце имени файла будет добавлена цифра 2, 3 и т.д., старый файл не будет перезаписан.

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

Отправка произвольного сообщения

Нажав на кнопку «Сообщение» в главном окне бота можно отправить произвольное сообщение или файл пользователю.

отправка произвольного сообщения из 1с через телеграм бот

В открывшемся окне нужно выбрать бота, пользователя и либо ввести сообщение, либо выбрать файл. Можно сразу и сообщение и файл. Нажав на кнопку «Отправить» сообщение и/или файл будут отправлены пользователю в телеграм.

сообщение для отправки пользователю в телеграм из 1с

Пример работы с ботом

Рассмотрим на примере работу с ботом.

Например, нужно настроить бота предоставляющего различные отчеты для руководства. Предположим, что отчеты создаются вручную в Excel и затем размещаются в каталоге «f:\Отчеты для руководства».

Сначала нужно добавить нового бота и попросить всех отправить ему любое сообщение.

Затем в списке пользователей открыть доступ для них (перенести их в список разрешенных пользователей).

Теперь нужно добавить команду с типом Файл. В настройках команды нужно указать путь к каталогу с отчетами, а также установить галку «Отправлять список файлов, если не указан параметр». Команду назовем отчеты.

настройка бота для отправки отчетов из 1с

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

список доступных отчетов через телеграм бот

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

запрос отчета из 1с с указанием имени отчета

Теперь добавим команду для получения отчета по остаткам. Для этого добавим на диске каталог «F:\Отчет по остаткам» и добавим в него только один отчет.

Добавим команду остатки, тип = Файл, в настройках укажем каталог с отчетом и установим галку «Отправлять список файлов, если не указан параметр».

отчет оп остаткам из 1с в телеграм бот по запросу пользователя

Теперь достаточно отправить боту команду остатки и в ответ сразу будет получен отчет по остаткам. Так происходит, потому что в каталоге только 1 файл.

отчет по остаткам из 1с в ответ на запрос пользователя в телеграм боте

Для автоматического формирования отчетов можно использовать функционал типовых конфигураций «Рассылка отчетов» с типом доставки «В сетевой каталог».

настройки автоматического формирования отчетов

Добавим еще одну команду с описанием всех команд бота. Тип команды = Текст, в текстовом поле опишем все команды бота.

команда с описанием всех команд бота

Отправив боту команду help, в отчет получим описание всех команд:

описание всех команд телеграм бота

Добавим возможность загрузки файлов через телеграм. Для этого в списке команд заполним поле «Каталог для загружаемых файлов»:

добавление возможности загрузки файлов через телеграм из 1с

Отправим через телеграм файл боту от пользователя Иванов, в результате файл будет записан на диск в подкаталог Иванов(Ivanov).


Дмитрий Медведков 1С

Дмитрий Медведков программист, консультант 1С
Работаю в 1С с 2012-го, специализируюсь на УТ 11
Имею 10 квалифиционных сертификатов 1C:Профессионал, 1С:Специалист и 1С:Специалист-консультант

Комментарии (0)

Чтобы оставить комментарий, зарегистрируйтесь и авторизуйтесь на сайте.