README.md

Hi there, I'm Kirill

programming for fun


in search of any work, do not offer money


1с УТ10 (Управление торговлей) + TelegrammBot

ВСЕ НАЗВАНИЯ ОРГАНИЗАЦИЙ, ДАННЫЕ, КЛЮЧИ РЕГИСТРАЦИИ И Т.Д на скриншотах - выдуманы!

Прошу сообщество сильно не ругаться на все мои недочеты, ибо молод еще в Git

Имеем: Маленькую компанию по мелкооптовым продажам. В штате 3 менеджера по продажам. Весь учет ведется в рамках до сих пор еще живой программы 1С + УТ10. (не обновлялись до УТ11 по разным причинам). Так как каждый выезд менеджера по продажам в “поля” сопровождался фразой “есть кто-нибудь у компьютера, посмотрите какой долг у ООО Ласточка и за какие отгрузки”, было решено каким-либо образом настроить TelegrammBot и автоматизировать данный процесс. Так как с УТ10 данный вопрос несколько сложнее чем с УТ11, было решено изобрести “костыль”, который к слову сказать работает давно и безотказно.

Не думаю что мой код кому-либо будет нужен (ибо все-таки у всех работа с 1С очень специфичная и сильно отличается друг от друга), но вдруг Вам приглянется идея самой реализации.

  1. Настраиваем что бы 1С автоматически создавала нужный Вам отчет и сохраняла его в виде *xls файла. В данном случае было настроено сохранения стандартного отчета (отчет по заказам покупателей) при каждом завершении работы 1С. Для нас это более чем удобный вариант. Хотя можно настроить и регламентные задания или еще каким-либо способом, в общем то, как говорится, кто на что горазд.
  2. Пишем на JAVA небольшую службу, которая регистрирует TelegrammBot, и при запросе от пользователя (менеджера по продажам), распарсивает *xls файл и отсылает данные в ответе. Программу-службу можно поставить в автозапуск windows (пишем bat-ник из одной строчки) и забываем о ее существовании. Практика показала что работает годами безотказно.

Поподробнее. Доработки 1С. Добавляем строчку в “модуле обычного приложения”, как на скриншоте ниже, для запуска процедуры при каждом закрытие программы

Создаем саму процедуру в “Общие модули” для сохранения отчета в виде *xls файла на диск

Вот так выглядит стандартный отчет “анализ заказов покупателей” с настройками “не оплачено” и “оплачено частично”

Теперь по поводу программы-службы на Java. Регистрируется TelegrammBot при помощи BotFather (Придумываете имя и получаете Token). При помощи Token (вставить в код Java) регистрируется сам TelegrammBot, и программа начинает слушать входящие сообщения. Если приходит сообщение-запрос от пользователя (менеджера по продажам), то загружается *xls файл и запускается поиск по заданному запросу. После поиска создается ответ и отсылается обратно пользователю. Варианты ответов на скриншоте с телефона ниже. В общем то информация там лаконичная, время актуальности данных по долгам, название контрагента, список не оплаченных или оплаченных частично заказов, общая сумма долга и сумма остатка долга.

p.s. Понимаю, что выглядит это решение, как некоторый “костыль”, тем не менее вариант рабочий, и именно для меня это оказалось намного проще, чем использовать расширения 1С, настройка «Webhooks», https, получения сертификата и т.д. Для нашего конкретного случая это было бы избыточно. Вы можете сформировать свой отчет, например “отчет руководителю” и получать другие данные. Также хотел отметить, что ChatId для каждого пользователя никогда не меняется, и можно реализовать что бы пользователь (менеджер по продажам) видел данные только своих контрагентов. И т.д. В общем то довольно не сложно настроить виды отчетов под свои личные нужды! Если у кого-то возникли вопросы, то обращайтесь, буду рад помочь.

Конвейеры
0 успешных
0 с ошибкой