"Помнить все" на 1С Элемент + Телеграм

27.01.25

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

"Помнить все" на 1С Элемент + Телеграм Вы можете напомнить себе о задаче, введя (или надиктовав) подобные фразы:   позвонить через 15 минут, напомнить завтра утром, погулять в 8 вечера в воскресенье, и даже: вынести мусор в последний понедельник следующего месяца без четверти пять.

"Помнить все" на 1С Элемент + Телеграм

Вы можете напомнить себе о задаче, введя (или надиктовав) подобные фразы:  

позвонить через 15 минут  

напомнить завтра утром  

погулять в 8 вечера в воскресенье  

и даже  

вынести мусор в последний понедельник следующего месяца без четверти пять  

Давным-давно была программа «Помнить все» под андроид, позволяющая задавать напоминания голосом.

Правда, на последних версиях она уже не работает. Признаю, что появились гораздо более навороченные альтернативы.

Здесь сделана попытка выполнить подобный разбор на старых добрых регулярных выражениях. К переданному тексту последовательно применяются регулярные выражения, пытаясь найти в тексте описание даты/времени. Если часть строки точно не нужно анализировать, можно обрамить ее двойными угловыми скобками <<это не дата>>.

Напоминание придет в привязанный телеграм-бот.

Соответственно, это можно перенести куда угодно. В том числе и на 1С Элемент.

Разбор времени напоминаний находится в общем модуле АнализДат.

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

Чудес от разбора ожидать не приходится, но все фразы, что я мог придумать, заносил в общий модуль АнализДатТест.

В отдельной функции описаны идентификаторы времени: утром (10:00), днем (13:00), вечером (20:00). Их легко можно перенести в справочник.

Поскольку это не законченное приложение, а просто учебная заготовка - оно рассматривается мной как однопользовательское. Я не разбирался с правами.

И до полноценного мобильного клиента руки у меня тоже не дошли.

Поэтому по прекрасной статье infostart.ru/1c/articles/2119555 создал телеграм-бота. Как добраться до http-сервиса, подключение вебхука, там все описано.

Описал шаблон в http-сервисe /bot/{SpecialString}/*

Все настройки находится в справочнике СправочникНастройки, в котором всего одна запись с кодом 1.

Структура справочника:

Токен – полученный токен телеграм-бота.

АдресПриложения – путь к вашему приложению. В телеграм-боте есть кнопка «Открыть ссылку» по данному адресу.

SpecialString – строка, которая добавится в путь к сервису. Это определенная защита, добавленная, чтобы адрес отличался от стандартного. Честно говоря, баловство, но и времени не заняло.

КлючАвторизацииСбер – В Телеграм мы легко можем отправить речь. Я не нашел, как можно преобразовать в текст в 1С Элемент на сервере, поэтому просто обращаюсь к api SaluteSpeech сбербанка, бесплатный пакет для физических лиц. Нужно получить ключ авторизации, и указать его, https://developers.sber.ru/docs/ru/salutespeech/authentication.

Путь к http-сервису для установки вебхука формируется автоматически в методе МодульТелеграм.ПолучитьПутьWebhook(): "%{Рез.АдресПриложения}/api/k/bot/%{Рез.SpecialString}/"

На форму объекта вывел команды установки и удаления вебхука.

 

 

В случае записи речи, получение файла и получение текста через api сбербанка выполняется в функции МодульТелеграм.СкачатьИРазобратьРечь().

После того, как разобрали текст и получили время напоминания, нужно обеспечить обращение к боту в это время. Напоминания хранятся в соответствующем справочнике (СправочникНапоминаний). Структура достаточно простая: ДатаНапоминания, СтрокаИсходная, Выполнено, ДатаРегистрации, ИдЧата, Код.

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

В модуле объекта:

@Обработчик
метод ПослеЗаписи(До: СправочникНапоминаний.Данные, ПараметрыЗаписи: СправочникНапоминаний.ПараметрыЗаписи)
    если ПараметрыЗаписи.ЗаписьИзСобытия == Неопределено или не ПараметрыЗаписи.ЗаписьИзСобытия 
        если ЗапланированныеЗадания.ПолучитьПоКлючу(этот.Код) != Неопределено
            ЗапланированныеЗадания.Удалить(этот.Код)
        ;
        если не Выполнено 
            пер НовоеЗадание = ЗапланированныеЗадания.Создать(&СправочникНапоминаний.ВызватьНапоминание,этот.Код)
            НовоеЗадание.Настроить(Расписание = Расписание.Однократно(этот.ДатаНапоминания.ВМомент(ЧасовойПояс.Текущий())),
            Ключ = этот.Код,
            Описание = этот.СтрокаИсходная).Запланировать()
            НовоеЗадание.Запланировать()    
        ;    
    ;
;    

В модуле менеджера:

@ВПроекте

метод ВызватьНапоминание(КодНапоминания: Строка): Строка

    знч Эл = СправочникНапоминаний.НайтиПоКоду(КодНапоминания).ЗагрузитьОбъект()

   

    новый ExecutionEvent(Details =                                          

    "В ${Эл.ИдЧата}, ${Эл.ДатаРегистрации|дд.ММ.гггг ЧЧ:мм} вы написали:

                                         %{Эл.СтрокаИсходная}

                                         "

    ).Записать()

   

    знч ОтветСообщения = МодульТелеграм.ОтправитьТекстовоеСообщение(Эл.ИдЧата,

                                         "В ${Эл.ДатаРегистрации|дд.ММ.гггг ЧЧ:мм} вы написали:

                                         %{Эл.СтрокаИсходная}

                                         ",

                                         МодульТелеграм.ВидыКлавиатуры.Продление

                                         )

   


    Эл.Выполнено=Истина

    Эл.Записать(ПараметрыЗаписи = новый СправочникНапоминаний.ПараметрыЗаписи(ЗаписьИзСобытия = Истина))    

    возврат ОтветСообщения                                    

;

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

 

 

Код работы с Телеграм находится в модуле МодульТелеграм ))

Для проверки нужно:

- Опубликовать данный проект в 1С Элемент

- Подключить телеграм-бота

- В пользовательском режиме внести в справочник настроек единственный элемент с кодом 1

- Добавить полученный адрес https://***.1cmycloud.com/applications/***

- добавить любую строку в поле SpecialString

- внести в справочник настроек токен Телеграм

- для автоматического разбора речи нужно получить ключ авторизации SaluteSpeech. Записать его в справочник настроек.

- Записанная или проговоренная строка в боте будет обработана и добавлена в задания.

 

 

При наступлении запланированного времени в Телеграм придет сообщение.

 

 

Добавлены кнопки, с несколькими вариантами продления.

Сообщение будет повторено через указанное время.

 

 

Весь код выложен на https://github.com/KAO-GIT/keepka.

1С Элемент Телеграм Regexp

См. также

Мессенджеры и боты Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Интеграция мессенджера WhatsApp и 1С: УНФ, УТ, КА, ERP - отправка и получение сообщений, картинок, файлов и видео прямо в 1С. Расширение работает с сервисом GreenApi.

15600 руб.

23.06.2023    10726    64    13    

40

SALE! 25%

Мессенджеры и боты Системный администратор Программист Бизнес-аналитик Пользователь Руководитель проекта Платформа 1С v8.3 Платные (руб)

Развитие популярного решения для интеграции мессенджера Telegram с нашей любимой 1С - конструктор чат-ботов в Телеграм.

15000 11250 руб.

18.06.2021    67048    318    272    

375

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 руб.

27.12.2021    39713    112    163    

206

Документооборот и делопроизводство (СЭД) Мессенджеры и боты Учет документов Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Платные (руб)

Расширение для согласования справочников и документов в основных типовых конфигурациях. Ролевая адресация, условная маршрутизация, чат-бот telegram, интеграция с n8n, последовательное и параллельное согласование, уведомление о новых задачах на почту, блокировка объектов в зависимости от статуса, запрет проведения в зависимости от статуса, автозапуск процессов согласования, отчеты по исполнительской дисциплине. Не требуется снятие конфигурации с поддержки. Настройка без программирования. Версия для 1cfresh.com. Сертификат 1С-Совместимо.

14900 руб.

15.11.2018    30947    37    49    

71

Мессенджеры и боты Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Платные (руб)

Универсальное расширение для отправки (напрямую и через прокси) печатных форм, отчетов, присоединённых файлов, табличных документов и произвольных вложений в чат Telegram прямо из 1С. Ручная и автоматическая фоновая загрузка по расписанию идентификаторов получателей Telegram. Хранение истории отправок сообщений с ограничением по времени хранения и с автоматической очисткой по мере истечения срока хранения.

4800 руб.

26.12.2023    3774    4    2    

12
Оставьте свое сообщение