1С 8.3 Telegram - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 Telegram

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

Регистрация нового телеграмм бота, используя @BotFather: https://core.telegram.org/bots/tutorial (через команду /newbot и нужно дать ему имя, которое заканчивается на "bot").
Обновить (API) в 1С 8.3:
Функция ПолучитьОбновления(Знач ТокенДоступа) Экспорт

   Результат = Неопределено;

   АдресURL = СтрШаблон("/bot%1/getUpdates", ТокенДоступа);
   Попытка
       СоединениеHTTP = Новый HTTPСоединение("api.telegram.org",443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
       ПрочитатьВСоответствие = Истина;
       Результат = GetJson(АдресURL, СоединениеHTTP, ПрочитатьВСоответствие);
   Исключение
       Результат = ОписаниеОшибки();
   КонецПопытки;

   Возврат Результат;

КонецФункции
Отправить сообщение Telegram в 1С 8.3:
Функция ОтправитьСообщение(Знач ТокенДоступа, Знач ИДЧата, Знач ТекстСообщения) Экспорт

   Результат = Неопределено;

   АдресURL = СтрШаблон("/bot%1/sendMessage?chat_id=%2&text=%3", ТокенДоступа, Формат(ИДЧата,"ЧДЦ=0; ЧГ=0"), ТекстСообщения);
   Попытка
       СоединениеHTTP = Новый HTTPСоединение("api.telegram.org",443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
       ПрочитатьВСоответствие = Истина;
       Результат = ПолучитьJson(АдресURL, СоединениеHTTP, ПрочитатьВСоответствие);
   Исключение
       Результат = ОписаниеОшибки();
   КонецПопытки;

   Возврат Результат;

КонецФункции

// Отправляет GET запрос
//
// Параметры:
//   URL - Строка - URL ресурса, к которому будет отправлен запрос.
//   ПараметрыЗапроса - Структура, Соответствие - параметры, которые будут отправлены в URL (часть после ?).
//                                                См. описание Сессия.ПараметрыЗапроса.
//   ДополнительныеПараметры - Структура - см. описание параметра в ВызватьМетод.
//   Сессия - Структура - см. возвращаемое значение функции СоздатьСессию.
//
// Возвращаемое значение:
//   Соответствие, Структура - ответ, десериализованный из JSON.
//                             Параметры преобразования см. ДополнительныеПараметры.ПараметрыПреобразованияJSON.
//
Функция ПолучитьJson(URL, Соединение, Знач ПрочитатьВСоответствие = Ложь) Экспорт

   HTTPЗапрос = Новый HTTPЗапрос(URL);

   Ответ = Соединение.ВызватьHTTPМетод("GET", HTTPЗапрос);
   Результат = JsonВОбъект(Ответ.ПолучитьТелоКакПоток(),,ПрочитатьВСоответствие);
   Возврат Результат;

КонецФункции

// Преобразование JSON в Объект.
//
// Параметры:
//   Json - Поток, ДвоичныеДанные - данные в формате JSON.
//   Кодировка - Строка - кодировка текста JSON. Значение по умолчанию - utf-8.
//   ПараметрыПреобразования - Структура - параметры преобразования JSON:
//      *ПрочитатьВСоответствие - Булево - если Истина, чтение объекта JSON будет выполнено в Соответствие,
//                                         иначе в Структура.
//      *ИменаСвойствСоЗначениямиДата - Массив, Строка, ФиксированныйМассив - имена свойств JSON,
//                                      для которых нужно вызывать восстановление даты из строки.
//      *ФорматДатыJSON - ФорматДатыJSON - определяет формат десериализации дат JSON-объектов.
//
// Возвращаемое значение:
//   Произвольный - значение, десериализованное из JSON.
//
Функция JsonВОбъект(Json, Кодировка = "utf-8", Знач ПрочитатьВСоответствие = Ложь, ИменаСвойствСоЗначениямиДата = Неопределено, Знач ФорматДаты = Неопределено)

   Если ФорматДаты = Неопределено Тогда
        ФорматДаты = ФорматДатыJSON.ISO;
   КонецЕсли;


   ЧтениеJSON = Новый ЧтениеJSON;
   Если ТипЗнч(Json) = Тип("ДвоичныеДанные") Тогда
       ЧтениеJSON.ОткрытьПоток(Json.ОткрытьПотокДляЧтения(), Кодировка);
   Иначе
       ЧтениеJSON.ОткрытьПоток(Json, Кодировка);
   КонецЕсли;

  Объект = ПрочитатьJSON(
       ЧтениеJSON,
       ПрочитатьВСоответствие,
       ИменаСвойствСоЗначениямиДата,
       ФорматДаты);

  
ЧтениеJSON.Закрыть();

   Возврат Объект;

КонецФункции
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 23.11.2023
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Назад к содержимому