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

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

Это внешняя разработка

Одно из 358 готовых решений нашего

Не мешает обновлению

Конфигурация остается "на замке", без изменений

Есть техподдержка

Бессрочная (3 месяца бесплатно)

Ограничения

Не подходит для 1C:Fresh

Универсальный телеграм-бот для 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С:Специалист-консультант

Артикул: 792

Обновлено: 03.07.2023

Продано (раз): 3

Совместимость:

  • Управление торговлей 11.4 и 11.5
  • Бухгалтерия предприятия 3.0
  • Управление нашей фирмой 1.6
  • Управление нашей фирмой 3.0
  • Комплексная автоматизация 2.4 и 2.5
  • Розница 2.2 и 2.3
  • Зарплата и управление персоналом 3.1
  • Управление предприятием ERP 2.4 и 2.5
  • Управление торговлей 3 (Казахстан)
  • Комплексная автоматизация 2.4 (Казахстан)
  • Бухгалтерия для Казахстана 3.0
  • Управление торговлей 3 (Беларусь)
  • Комплексная автоматизация 2.4 (Беларусь)

загрузка цены...