Телеграм БОТ и 1С 7.7 (пример интеграции)

18.09.20

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

Небольшая обработка (шаблон) по интеграции НЕ умирающей 1С 7.7 (7.70.027) и TELEGRAM.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Телеграм БОТ и 1С 7.7 (пример интеграции):
.ert 169,00Kb ver:2.1
36
36 Скачать (1 SM) Купить за 1 850 руб.
Телеграмм БОТ и 1с 7.7(пример итеграции):
.ert 165,00Kb ver:1
15
15 Скачать (1 SM) Купить за 1 850 руб.

Обработка(шаблон) "Пример работы с БОТ-Telegram".

Стандартно создайте своего ЧатБота через "BotFather"....

Согласно инструкции, перейдите в учетную запись @BotFather путем нажатия на синюю ссылку с названием аккаунта;

Теперь нажмите кнопку Send Message для того, чтобы начать переписку с данным «пользователем»;

Введите команду /start и в ответ на нее вы получите список команд, которые можно использовать при создании бота

Отправьте команду /newboot.......

Далее все интуитивно понятно, нам сгенерируют ТОКЕН.

(если что, инструкций в интернете есть много.)

В БОТ можно добавить список команд, добавляется через "BotFather" командой /setcommands и передается за один раз весь список команд

пример....

mapoffice - офис на карте

teloffice - телефон офиса

useroffice - кто в 1С базе

Настроили бота, настроили обработку и запустили ее в 1с.

В своем БОТе нажимаем /start, через некоторое время получите ответ.

Далее все интуитивно, можно нажимать кнопки и писать что-то боту.

 

Скорость ответа регулируется в процедуре "ПослеОткрытия()"

ФормаРасш.ОбработкаОжидания("Сообщения",4000);// Четыре секунды

Если нет компоненты "FormEx", данную строку надо закомментировать.

Тогда взаимодействие с БОТом будет по кнопке "ОБНОВИТЬ" на форме.


//***************************************************************************************************************************
Необходимые компоненты(по желанию):"FormEx","Admin1C".

Общение с Ботом через "WinHttp.WinHttpRequest.5.1"

в функции "ОтправитьHTTPЗапрос()", необходимо указать адрес и порт ПроксиСервера(если у Вас блокируется работа с Telegramm).

 

В функции "ПолучитьAccessToken()", необходимо прописать token своего Бота.

Обработка поддерживает;
"getUpdates",
"sendMessage",
"sendLocation",
"sendContact",
"answerCallbackQuery",
"editMessageReplyMarkup",
"sendChatAction".

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

18-09-2020 добавлен метод "sendDocument". Отправка документа осуществляетс при помощи CURL. Файлы отправляются БОТу по команде "\pdf", "\txt". Файлы должны находиться в определенном каталоге. Для себя логику определения файлов можете переписать.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Тестировалось на платформе 1С:Предприятие 7.7 для SQL (7.70.027)

Телеграм БОТ 1с7.7 Telegramm bot отправка сообщения

См. также

Мессенджеры и боты Системный администратор Программист Пользователь Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

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

1 стартмани

22.12.2023    1299    12    Юджин58    14    

4

Мессенджеры и боты Программист Пользователь Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Обработка отправляет сообщения из 1с 7.7 любой конфигурации пользователю viber.

1 стартмани

05.04.2021    7732    10    Юджин58    6    

6

Мессенджеры и боты Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

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

1 стартмани

09.08.2017    19583    44    Gkmy    37    

10

Мессенджеры и боты Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Внешняя обработка на 7.7 для работы со Skype. Позволяет менять статус, добавлять/удалять контакты, звонить, отправлять сообщения, просматривать истории.

1 стартмани

14.04.2011    25092    424    Lepochkin    22    

53

Мессенджеры и боты Системный администратор Программист Бухгалтерский учет 7.7 Конфигурации 1cv7 Бесплатно (free)

Данная конфигурация работает с протоколом ICQ, то есть, может принимать и отправлять сообщения посредством ICQ

04.09.2008    13796    212    skom    15    

8
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Drena 17 14.08.20 17:03 Сейчас в теме
Здравствуйте,

Скачал Вашу обработку, стал дорабатывать под себя, попытался сам освоить функцию "sendDocument()" через multipart/form-data, но успеха не добился, хотя на 8-ке полно рабочих примеров.

Нет ли у Вас в планах добавить возможность работы с функцией "sendDocument()" по отправке в чат произвольного файла с диска? Я бы например был бы готов заново приобрести "обновлённую" версию обработки.
2. serpent 69 14.08.20 20:24 Сейчас в теме
(1)надо попробовать. Благо телеграм не блокируют теперь.
21. Drena 17 19.09.20 18:06 Сейчас в теме
Скачал новую версию обработки (с отправкой файлов). Убедился, что отправка произвольных файлов работает! Ещё раз респект автору и всем, кто помогал!!!

Правда одно разочарование постигло: из локальной базы 1С всё работает (Windows 10). Дальше хотел испытать обработку в "боевой базе" на Windows 2003, но там сам объект "WinHttp.WinHttpRequest.5.1" не заработал, к API не получается обратиться :-(

Применил конструкции, которые помогали в других случаях, но не помогло :-(

HTTPЗапрос = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
Скрипт = СоздатьОбъект("MSScriptControl.ScriptControl");
Скрипт.language = "javascript";
Скрипт.AddObject("WinHttp",HTTPЗапрос);
// --- Отключаем проверку сертификата:
Скрипт.Eval("WinHttp.Option(2)=1251");
Скрипт.E val("WinHttp.Option(4)=13056"); // intSslErrorIgnoreFlags
Скрипт.Eval("WinHttp.Option(6)=true"); // blnEnableRedirects
Скрипт.Eval("WinHttp.Option(12)=true"); // blnEnableHttpsToHttpRedirects

Пишет ошибку: "WinHttp.WinHttpRequest: A security error occurred"
23. serpent 69 20.09.20 09:23 Сейчас в теме
(21)В 2003 также как и в ХР отсутствует поддержка работы в winhttp по протоколу ssl
22. Drena 17 19.09.20 19:00 Сейчас в теме
^^^
Предыдущее сообщение (21) не получилось добавить в конец диалога, оно добавилось в какую-то цепочку ответов :-(

UPD: попробовал отправить файл из 1С-базы из под Windows 2003 через бота через "чистый" curl.exe без использования "WinHttp.WinHttpRequest.5.1" и всё получилось!
3. Drena 17 14.08.20 20:29 Сейчас в теме
Тогда я буду первый в очереди на закачку! :-)
4. serpent 69 19.08.20 08:55 Сейчас в теме
(3) Основные функции для "sendDocument()" сделал. Передает Текстовый документ боту. Проблема с Бинарными файлами.
В 7.7 не получается подружить текст с БинарнымиДанными, для передачи в Телеграм по формату "multipart/form-data".

Пока ищу как...
7. пользователь 15.09.20 22:18
Сообщение было скрыто модератором.
...
5. Drena 17 21.08.20 10:18 Сейчас в теме
Не знаю - поможет ли, но я ставил эксперименты с "Base64.dll"
Функция КодироватьФайлВСтрокуBase64(ПутьКНужномуФайлу)

// --- Взял отсюда:
	// https://forum.mista.ru/topic.php?id=639946
	
	Попытка
		ВК = СоздатьОбъект("AddIn.Base64");
	Исключение
		Сообщить("Не удается создать объект AddIn.Base64!");
		ГенераторОшибки = 0/0;
	КонецПопытки;
	СтрокаИзФайла = ВК.ЗакодироватьBase64(ПутьКНужномуФайлу);
	Сообщить("Длина строки Base64: "+СтрДлина(СтрокаИзФайла));
	//Сообщить("СтрокаИзФайла: "+СтрокаИзФайла);
	Возврат СтрокаИзФайла;
	
КонецФункции // КодироватьФайлВСтрокуBase64()
Показать
6. serpent 69 14.09.20 15:08 Сейчас в теме
(5)
ЗакодироватьBase64(FileName)
Читает файл FileName.
Преобразует этот файл в закодированную base64 строку.

Параметры: FileName — имя файла
Возвращаемое значение: закодированная base64 строка.

на выходе строка...
В телеграмм приходит Файл с данной строкой, телеграмм его соответственно не может декодировать

Передавать надо ПОТОК
а 1С7.7 не может соединить строку и ПОТОК.... если я все правильно понимаю.
Прикрепленные файлы:
8. Drena 17 16.09.20 17:45 Сейчас в теме
(6)
Если Вы ещё не устали от этой задачи, то я погуглил по поводу двоичных данных в 1С 7.7: стандартными средствами 7.7 действительно не получится, но (далее цитата): "... решение этой задачи есть, например, через системный COM-объект ADODB.Stream, в котором возможно выполнение vbs-скрипта в среде, где работа с бинарными потоками предусмотрена."

Кроме того, можете поискать по ключевым словам "os7764 - Упаковщик двоичных файлов (для 1С 7.7)"

Кроме того, я нашёл на Инфостарте обработку за стартмани "Работа с бинарными файлами в 1С 7.7" (https://infostart.ru/public/127873/), где якобы решены эти вопросы. Единственное, если она понадобится Вам - я не знаю как лучше оформить передачу стартмани, я не вникал - можно ли передавать стартмани между пользователями Инфостарта. Как вариант - я могу купить у Вас какую-то другую вашу обработку за стартмани, а Вы скачаете обработку "Работа с бинарными файлами в 1С 7.7"
9. stepan13 16.09.20 23:50 Сейчас в теме
(8) когда я писал своего бота, я просто отправлял файлы через curl.exe
10. serpent 69 17.09.20 07:09 Сейчас в теме
(9) пример покажите?
у меня затык в составном типе miltiparts. Просто так 1с не може соединить строку и stream.
12. stepan13 17.09.20 09:29 Сейчас в теме
(10)
curl.exe -i -k -X POST BotAdress/sendDocument -F chat_id=ChatID -F caption="Очень важная инструкция" -F document=*"d:\Общая\Инструкция.pdf";filename="Инструкция.pdf"
13. stepan13 17.09.20 11:01 Сейчас в теме
(12)
меня инфостарт банил на сутки за этот пост, решил через поддержку.
вставилось неверно
должна быть не звездочка, а собака

-F document=*"d:\Общая\Инструкция.pdf"
14. serpent 69 17.09.20 12:42 Сейчас в теме
(12) и не надо собирать "multipart/form-data" ??
15. stepan13 17.09.20 15:59 Сейчас в теме
(14) да. флаг -F это и есть отправить данные в этом формате.

выше в строке только ошибка - там нужна собака вместо звездочки:
-F document=СОБАКА

форум заменил.
16. serpent 69 17.09.20 17:04 Сейчас в теме
(15)Может я чего не понимаю?? с curl не работал

curl.exe -i -k -X POST https://api.telegram.org:443/bot280435593:AAE0bIwuOGa29GLd3Ym8BsqvUbeeWAKv-kI/sendDocument -F chat_id=553483475 -F caption="Тестовый документ" -F document=*"D:\DRV\33333.doc";filename="МойДок.doc"

но не отправляет
17. stepan13 17.09.20 17:20 Сейчас в теме
(16) поля caption и filename должны быть в юникоде, если там русские буквы, для теста просто замени на английские

ну и добавь в конце вывод что-то типа > "D:\telegram.txt"
или флагом -o чтобы получить ответный джейсон и посмотреть, может в нём ошибка какая
Прикрепленные файлы:
18. stepan13 17.09.20 17:26 Сейчас в теме
(16) ну как-то так я формирую
Функция ОтправитьНаСерверФайл(ИмяФ,ИмяО="",ЧатИД,ИсходныйИД=0,Сообщение="")
	Адрес = АдресБота + "/sendDocument";
	Если ИсходныйИД <> 0 Тогда
		ОтветНа = " -F reply_to_message_id="+ИсходныйИД;
	Иначе
		ОтветНа = "";
	КонецЕсли;
	
	ИмяФайла = ВУТФ8(НайтиИмяФайла(ИмяФ));
	Если Сообщение = "" Тогда
		Стр = "";
	Иначе
		Стр = " -F caption=""" + ВУТФ8(СокрЛП(Сообщение)) + """";
	КонецЕсли;
	Команда = "curl.exe -i -k -X POST " + Адрес 
	+" -F chat_id=" + ЧатИД + ОтветНа + Стр 
	+ " -F document=*""" + СокрЛП(ИмяФ) + """;filename=""" + ИмяФайла+""" > """ + ИмяО + """";
	
	ФС.УстТекКаталог(КаталогИБ() + "soft");
	КомандаСистемы(Команда);
	возврат 0;	
КонецФункции

Показать
19. serpent 69 17.09.20 17:31 Сейчас в теме
(15)curl был старый. Обновил оттправил, А как ответ получить после POST?
20. stepan13 17.09.20 21:23 Сейчас в теме
(19) флаг -o или в конце добавить вывод через >
11. serpent 69 17.09.20 07:10 Сейчас в теме
(8) спасибо. Данная обрабо ка у меня есть.
24. KRJ 03.06.21 15:44 Сейчас в теме
serpent, подскажите есть возможность отправки сообщений одному пользователю? если есть такая возможность, то как это настроить отправку сообщений с помощью вашей обработки?
25. serpent 69 03.06.21 22:03 Сейчас в теме
(24)нет, общение только с Ботом. Всё общение и коммуникация через него.
26. KRJ 04.06.21 11:36 Сейчас в теме
(25)это понятно что через бота.... вопрос про то что можно или нельзя через бота отправить сообщение одному пользователю?
пс. опишите схему работы
27. Drena 17 04.06.21 11:53 Сейчас в теме
(26) Начните с теории для чего нужны боты и что они умеют, какие у них ограничения: https://tlgrm.ru/docs/bots
Если по этой ссылке недостаточно данных - почитайте ещё пару статей про ботов.
Через бота можно слать сообщения в каналы, чаты и отдельным пользователям, главное чтобы конкретному боту либо были даны права на публикацию сообщений в канале или чате, либо чтобы конкретный пользователь начал диалог с ботом через команду /start
Дальше Вы где-то сохраняете уникальные ID чатов, каналов, пользователей и шлёте сообщения с указанием этих ID
28. serpent 69 04.06.21 15:36 Сейчас в теме
(27) Спасибо...

(26) На сколько я понимаю(может и ошибаюсь), что через БОТА послать Сообщение другому пользователю наверное нельзя.
Т.Е. вы трое в одном чате Я,БОТ,ЮЗЕР1... просто так написать в ЧАТ Я -> ЮЭЕР1 ХелойВорлд... врядлли.

sendMessage(chat_id, text, parse_mode="", disable_web_page_preview="", disable_notification="", reply_to_message_id=0, reply_markup="")

Сообщение посылается в определенный ЧАТ и его можно прикрепить к определенному сообщению(которое ранее было создано)
29. serpent 69 04.06.21 15:45 Сейчас в теме
С помощью внешней таблицы(dbf) у меня организовано общение Юзера с ботом. Начало разговора... ВопросОтБота, ОтветЮзера, ответОтБота(по запросу Юзера), Выбор варианта Пользователем и Завершение РАЗГОВОРА.
Каждый пользователь из чата имеет свою "линию" для Вопрос-Ответ.
Например Снять контрагента с ФинКонтроля... Начало по служебной Команде "/fink" Бот стартует и запрашивает наименование контрагента, Юзер вводит набор символов и отсылает БОТУ. Бот на выбор предлогает некое количество найденных контрагентов. Юзер Выбирает нужного, конец общения Контрагент снят с ФК.

Другой вариант общения Торгового через БОТа. Начало по Команде "/kpk", Бот предлогает ввести номер маршрута. Юзер указывает свой и получает свои продажи и возвраты за день.
30. пользователь 14.07.22 08:58
Сообщение было скрыто модератором.
...
31. sarh 27.07.22 12:08 Сейчас в теме
Добрый день.Скачал вашу обработку, пытаюсь разобраться но получаю ошибку "Совсем все плохо, ОШИБКА запроса метод getUpdates
Если Результат JSON Получить ("ok")=-1 тогда Значание не представляет агрегатный объект(Получить). При запросе из браузера данные есть."ok":true,"result":[{"update_id"
32. serpent 69 27.07.22 20:01 Сейчас в теме
(31) может Вы выходите через прокси? Тогда данные настройки надо указать в обработке
33. sarh 27.07.22 23:28 Сейчас в теме
(32) Спасибо за ответ.Разобрался проблема была в tsl 1.2 Решение для win 7 или 2008 server
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp]
"DefaultSecureProtocols"=dword:00000800
Parazyte; serpent; +2 Ответить
Оставьте свое сообщение