Отчеты из 1с в телеграм

Обновлено: 03.07.2024

Возможности:
- умеет формировать СКД отчеты с пользовательскими настройками;
- умеет выполнять произвольные запросы в информационной базе;
- умеет выполнять запросы в базе журнала регистрации (1cv8.lgd);
- механизм регламентных задач позволяет автоматизировать процесс предоставления отчетов и результатов запросов пользователю.

Где применить:
- пользователь может запросить отчет вручную используя свой Telegram в любое время и в любом месте;
- отчеты могут быть предоставлены пользователю автоматически в заданное время (ежедневные продажи, остатки на конец недели);
- сотрудник, ответственный за сопровождение информационных баз, может получать оперативную информацию о внештатных ситуациях (количество ошибок, успешность выполнения обмена).

Особенности:
- officeRebot устанавливается как служба Windows;
- не требует внесение изменений в конфигурации инф. баз;
- взаимодействует с 1С через COM соединение;
- умеет взаимодействовать с множеством баз;
- имеет возможность ограничения доступа к данным по ролям;
- универсальный механизм для реализации задач на предприятии;
- не требует программирования, для использования нужно только настроить.

officeRebot - коммерческий продукт, распространяется свободно с ограничением на 3 отчета и 3 выборки. Поддержка продукта по свободной лицензии может быть ограничена, По ПРОМО акции лицензия на 12 месяцев предоставляется БЕСПЛАТНО.

Согласовано с Волшебником.

(0) 18 месяцев?
А потом еще плати?
Вы автор охренели? Жадность наказуемо :) + Платить то за что?
Хоть обоснуй свою политику мзды по 1000 рубликов за велосипед :) система лицензирования гибкая, период лицензии может быть любым (2) возможность получать отчеты на смарт или планшет, думаю это стоит 1000 (3)возможно позже будет неограниченная лицензия по времени (7) руководителям организации может быть полезно смотреть данные вне офиса, или зарубежом, в моей практике такая ситуация решалась отправкой писем, однако работники в офисе не всегда были, точнее они не хотели там быть )) (9) Управляемые формы в веб-интерфейсе плюс мобильное приложение. (9) зашёл с помощью тимвьювер и сформировал отчет. ТВ - бесплатная программа для личного пользования. И даёт в разы больше возможностей. (8) администраторам позволит держать руку на пульсе критических ситуаций, конечно если у Вас не большая организация и нет необходимости повышать отказоустойчивость то Вам этот бот не нужен. (9) + обработка, которая в ответ на входящее письмо на спец. ящик пришлет тебе любой отчет. Не вижу смысла в Вашей поделке. (10) их еще не всем завезли, и стоимость внедрения этого несколько больше 1 тыс рублей) (11) Тимвиювер? не смешите, он в самый не подходящий момент отрубит. Зачем эти мучения, если можно практически одной кнопкой получить отчет? (14) я знаю на сколько он бесплатный. больше 20 уникальных подключений и он становится платным. Вряд ли руководитель будет лазить по всем компьютерам, ему хватит бесплатной лицензии.
(16) только надо не забыть заплатить ДС за лицуху. (14)(16) ну кроме Тимвьювер есть еще целая куча разного софта (13) Реализовать конечно задачу можно разными способами, но не проще ли приобрести мою разработку за тысячу рублей и пойти на мисте бюсты рассматривать)? (19) плюс это надо телеграм иметь. А у меня которая обычной почтой обходится)) (20) а как Вы параметры отчета вводите? Вот в мой бот предлагает варианты периода отчета: нажал кнопочку - отчет за этот период пришел Ладно, как бы там не было, любой софт имеет право на жизнь ))
а у кого, кто и как будет получать себе отчеты решает сам способов мульён. (22) это коммерческая тайна) когда опубликую свою согласованную тему - там и расскажу (21) а можно изменить группировку и добавить/убрать выводимые поля и отборы? (25) этак ему придется целого телеграм-клиента городить полноценного)) 1000 руб за 1.5 года – это ни о чём. А продукт полезный. (25)можно сохранить пользовательские настройки СКД и настроить формирование отчета с этими настройками. вводить группировки через телеграм считаю не целесообразным и опасным для здоровья пальцев, задача - предоставлять отчеты максимально просто. (27) в дальнейшем ценообразование и варианты лицензий могут измениться, функционал на мой взгляд стоит этих денег, реализация приближенного функционала иными средствами на мой взгляд потребует больших вложений. (31) причем на планшетах и смартфонах есть как правило голосовой ввод. Нажал "написать письмо", голосом сказал - и пришел отчет. (31)печатать надо, лень, с голосовым вводом намного интересней вариант звучит. (36) да публикация-то норм пока отображается, а так ИС лёг по ходу снова (38) моя разработка не подразумевает необходимость инициации отправки пользователем 1С. Но можно настроить регламентную задачу с ежеминутным выполнением и выполнением запроса. Таким образом можно информировать пользователя телеграм о появлении новых объектов или прочи изменениях в базе данных.

Однако клиентам нужно подружиться с ботом.

(38)инициатор чата в боте - клиент, затем боту доступны все чаты (41) решений много, мой бот устанавливается как служба Windows или как консольное приложение запускается, и по сути сам является Telegram клиентом. (42)бот хранит лишь идентификатор чата с конкретным пользователем, боту вообще ничего не доступно кроме разрешенного. Более того боты между собой не могут общаться.

(32) >причем на планшетах и смартфонах есть как правило голосовой ввод. Нажал "написать письмо", голосом сказал - и пришел отчет

плюс бота - возможность диалога. нажал "/" - получил список доступных команд. выбрал команду, получил список доступных опций. а в письме это нужно с шаблонами извращаться.

(47) в твоей разработке 1ска может выступать инициатором отправки? или только автоответчик?

(48) есть объект "Выборка" с помощью которой можно получить какие то не большие данные запросом из 1с или базы логов пиши апи для своей программы - тогда будет больше шансов взлететь =) (52)настроить отчеты проще простого. С выборками конечно посложней, особенно к базам логов. Думаю со временем добавлю шаблоны запросов и правила их написания. (48)
>> в твоей разработке 1ска может выступать инициатором отправки? или только автоответчик?
По определению в телеграме боты такого делать не могут. Но вроде ввели сейчас, что могут, но строго лимитировано. Типа 1 раз в неделю. (57) Если я уже подписался на бота, бот может мне самостоятельно отправлять?

(58) даже если пользователь взаимодействует с ботом, бот не знает ид пользователя, а только ид чата.

(59) может все что угодно отправлять, после того как пользователь нажмет кнопочку старт (подписался) в боте.

- исправлена ошибка доступа к базам логов (1С не хотела делиться данными);
- при подключении пользователя, назначается роль "Все";
- изменены настройки и демо база;
- исправлены мелкие ошибки;

Добавил тестовый бот officerebot_test (@officerebot).

Теперь можно попробовать officerebot на демо базе.

Доступны три отчета (простой, остатки, обороты), и две выборки (количество ошибок и обороты за период).

В тестовом боте присутствует рассылка (каждые 5 минут).

сервер за границей, доступ на мобиле через рдп, ждем тонкого андрюшу, успехов! (63) Спасибо. андрюшу была задумка сделать с целью повышения секурности как раз для таких вариантов.

Все мы знаем про журнал регистрации, но обращаемся к нему, как правило, только после выявления ошибок пользователем, когда уже все сломалась и надо устранять последствия. В моей практике были случаи, когда нарушалось выполнение обмена данными, большой объем данных приходилось грузить в то время когда его должны были использовать.
Одной из возможностей officeRebot является выполнение запросов в SQLite БД логов 1С (1cv8.lgd). Данная функция может быть полезна в первую очередь администратору информационных баз. С ее помощью можно оперативно получать информацию о внештатных ситуациях.
В этом примере рассмотрим, как организовать оповещение администратора о наличии ошибок.
Для начала нужно добавить базу логов в список инф. баз и добавить роль пользователям, которым нужно отправлять информацию об ошибках.
Во вновь созданной выборке установить роль указанную пользователям, и выбрать базу логов.
Заполнить текст запроса к базе логов:
select
count(1),
strftime('%d.%m %H:%M', @ДатаПоследнегоВыполнения),
strftime('%d.%m %H:%M', @ТекущаяДата),
IFNULL(max(rowID), @пр3)
from eventlog
where
severity=3 AND rowID>IFNULL(@пр3,0)

В данном запросе при каждом выполнении отбирается количество ошибок (severity=3) среди новых событий (@пр3 хранит последний обработанный ИД события)

Заполнить шаблон результат:
Произошло ошибок за период с по

Где – индекс колонки первой строки результата.

"взаимодействует с 1С через COM соединение; " - ну вот а в соседней ветки писали что com это атавизм и никому не нужен. И те кто использует com это ленивые мамонты которые лень изучать odata (66) вот те кто писал пусть и используют)) Данную задачу COM решает хорошо. (67) COM - это долго. Много времени тратится на подключение. Или у тебя все время, пока служба запущена, подключение активно?

(68) Каждый раз подключение новое. Согласен замедление ощутимое для глаз.

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

В этом приложение СОМ используется для формирования СКД и запросов самой 1С, т.е. вся "черная" работа остается за 1Ской.

Бот автоматизирует этот процесс.

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

Подготовил новую версию (1.2):

- добавлена возможность формировать внешние отчеты;
- осуществлены мелкие доработки.

- в папку "ExternalReps" скопировать внешний отчет;
- в конфигураторе бота добавить отчет;
- в поле "Имя в конфигурации" указать имя файла с расширением (.erf);
- произвести настройку отчета;
- пользоваться.

- officeRebot функционирует самостоятельно и не требует внесения каких-либо изменений в конфигурацию;
- работает с Telegram из вашей приватной сети за NAT и без "белых" адресов или DynDNS;
- устанавливается как служба Windows, и может работать как консольное приложение.

Аватар пользователя mykib.org

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

В данной статье рассмотрим следующее:

Для начала, зарегистрируем бота, получим его id - токен. В Telegram для этого создан специальный бот — @BotFather.

 В Telegram для этого создан специальный бот — @BotFather

Добавляем его в контакт. Получаем получаем список его команд, написав ему /start.

Этого, в принципе, достаточно.

2. Создание обработки в 1С

Создадим внешнюю обработку. Добавим реквизиты обработки строковый переменной длины «Бот», «Токен», «Сервер».

Т.к. обработку не будем привязывать к конкретной конфигурации, то список понимаемых команд будем хранить в табличной части обработки «ТаблицаПонимаемыхКоманд» (а так, в принципе, команды можно хранить в справочнике конфигурации).

Реквизиты ТЧ строковые: «Имя», «ВыполняемоеДействие», «Параметр», «Описание»

 ТаблицаПонимаемыхКоманд

Команды пользователя (те, которые он буде писать боту) по той же причине будем хранить в табличной части «КомандыПользователей» (если не делать обработку универсальной, то, конечно, предпочтительно использовать регистр сведений – далее, в листингах кода укажем примеры и для регистра сведений тоже).

Реквизиты ТЧ: числовые «chat_id», «date», булево «Выполнено» и строковый «Команда».

 КомандыПользователей

Теперь создадим управляемую форму обработки, назначим ее основной и разместим реквизиты «Бот» и «Токен» (необязательно, но для наглядности):

 Теперь создадим управляемую форму обработки 1C, назначим ее основной и разместим реквизиты «Бот» и «Токен» Telegram

Также создадим реквизит формы «Дерево» – тип «ДеревоЗначений». В нем будут отображаться чаты. Для наглядности выведем его на форму. Колонки дерева создадим программно (см.далее).

Для события формы ПриСозданииНаСервере добавим процедуру:

Если Вы используете версию 1С 8.3.6 и выше, то в процедуре ПрочитатьДвоичныеДанныеОтвета() будем использовать новый объект ЧтениеJSON()
.

В процедуре ЗаполнитьРС() будем заполнять табличную часть «КомандыПользователей» (или же регистр сведений). (код процедуры далее).

Процедура ЗаполнитьСтруктуруИзОтветаJSON() заполняет дерево чатов:

Если Вы используете версию 1С ниже 8.3.6 то процедура ПрочитатьДвоичныеДанныеОтвета() будет такой:

Как уже было сказано, в процедуре ЗаполнитьРС() будем заполнять табличную часть «КомандыПользователей» (или же регистр сведений). (код процедуры далее).

Процедура ЗаполнитьСтруктуруИзОтветаJSON() – это парсер JSON и рекурсивное заполнение дерева для версии ниже 1С 8.3.6:

Теперь опишем процедуру, заполняющую табличную часть «КомандыПользователей» либо регистр сведений:

Если вы будете использовать регистр сведений (я назвал его «КомандыПользователей»), то закомментируйте/разкомментируйте соответствующие участки кода.

Обратите внимание, что если версия ниже 1С 8.3.6, то в коде переменную Параметр надо преобразовать из Юникода (этот участок обозначен в коде в комментарии - разкомментируйте его):

Для этого используем две функции Юникод – парсер (он нужен только для версии 1С ниже 8.3.6):

В процедуре ЗаполнитьРС() вызывается функция ВыполнитьКомандуБота(ЗаписьРегистра, Параметр), где ЗаписьРегистра – это строка табличной части ТаблицаПонимаемыхКоманд (либо запись Вашего регистра сведений). Параметр – параметр команды (то что написал боту пользователь).

  • о версии операционной системы;
  • о версии используемого 1С:Предприятия 8 в формате <основная версия>.<младшая версия>.<релиз>.<дополнительный номер релиза>.(например, 8.2.9.200);
  • Уникальный идентификатор клиента. Для данного компьютера и данного пользователя операционной системы идентификатор один, вне зависимости от информационной базы и пользователя информационной базы;
  • о веб-браузере (userAgent);
  • о размере оперативной памяти;
  • Идентификатор процессора;
  • тип платформы, в рамках которой осуществляется работа.

Для того, чтобы все работало автоматом лучше использовать фоновое задание. Но так как наша Обработка не привязана к конкретной базе данных и к конкретной конфигурации. То подключим обработчик ожидания.

Создадим команду формы «ЗапускФоновыхЗаданий», разместим соответствующую кнопку на форме. Обработчик команды:

Вот и все – Обработка прилагается.

Отдельное спасибо пользователю Инфостарт igo1 - перекодировка из Юникода (Unicode) в строку.

Аватар пользователя mykib.org

Интеграция 1С с мессенджером Telegram для любой конфигурации (типовой или самописной) для любого режима запуска (тонкий, толстый клиент). Для встраивания системы достаточно объединить свою конфигурацию с предложенной — в результате в Вашей конфигурации появится подсистема Телеграм. Весь функционал (код) является открытым для доработки/изменения. Платформа 1С 8.3.6 и выше.

Интеграция 1С с мессенджером Telegram для любой конфигурации

Взаимодействие происходит при помощи регламентного задания.

Справочник «Телеграм боты» - список ботов телеграмм, с возможностью проверки правильности:

Справочник Телеграм боты - список ботов телеграмм, с возможностью проверки правильности

Cообщение пользователю Telegram

«Телеграм настройка работы ботов» - настройка расписания и исключительных ситуаций работы регламентного задания:

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

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

В коде есть закомментированный пример авторизации пользователей - закомментирован по той причине, что пользователя бота может не быть в базе 1С. Если Вам необходима обязательная авторизация — посмотрите этот пример.

Бот принимает следующие команды пользователей Telegram:

/start – начало работы

/report – пример получения отчета в формате Excel (xlsx)

Для начала, зарегистрируем бота, получим его id - токен. В Telegram для этого создан специальный бот — @BotFather. Добавляем его в контакт. Получаем получаем список его команд, написав ему /start.

Этого, в принципе, достаточно.

2. Создание обработки в 1С

Создадим внешнюю обработку. Добавим реквизиты обработки строковый переменной длины «Бот», «Токен», «Сервер».

Т.к. обработку не будем привязывать к конкретной конфигурации, то список понимаемых команд будем хранить в табличной части обработки «ТаблицаПонимаемыхКоманд» (а так, в принципе, команды можно хранить в справочнике конфигурации).

Реквизиты ТЧ строковые: «Имя», «ВыполняемоеДействие», «Параметр», «Описание»

Реквизиты ТЧ строковые: «Имя», «ВыполняемоеДействие», «Параметр», «Описание»

Команды пользователя (те, которые он буде писать боту) по той же причине будем хранить в табличной части «КомандыПользователей» (если не делать обработку универсальной, то, конечно, предпочтительно использовать регистр сведений – далее, в листингах кода укажем примеры и для регистра сведений тоже).

Реквизиты ТЧ: числовые «chat_id», «date», булево «Выполнено» и строковый «Команда»

Реквизиты ТЧ: числовые «chat_id», «date», булево «Выполнено» и строковый «Команда»

Теперь создадим управляемую форму обработки, назначим ее основной и разместим реквизиты «Бот» и «Токен» (необязательно, но для наглядности):

Теперь создадим управляемую форму обработки, назначим ее основной и разместим реквизиты «Бот» и «Токен»

Также создадим реквизит формы «Дерево» – тип «ДеревоЗначений». В нем будут отображаться чаты. Для наглядности выведем его на форму. Колонки дерева создадим программно (см.далее).

Для события формы ПриСозданииНаСервере добавим процедуру:

Если Вы используете версию 1С 8.3.6 и выше, то в процедура ПрочитатьДвоичныеДанныеОтвета() будем использовать новый объект ЧтениеJSON().

В процедуре ЗаполнитьРС() будем заполнять табличную часть «КомандыПользователей» (или же регистр сведений). (код процедуры далее).

Процедура ЗаполнитьСтруктуруИзОтветаJSON() заполняет дерево чатов:

Если Вы используете версию 1С ниже 8.3.6 то процедура ПрочитатьДвоичныеДанныеОтвета() будет такой:

Как уже было сказано, в процедуре ЗаполнитьРС() будем заполнять табличную часть «КомандыПользователей» (или же регистр сведений). (код процедуры далее).

Процедура ЗаполнитьСтруктуруИзОтветаJSON() – это парсер JSON и рекурсивное заполнение дерева для версии ниже 1С 8.3.6:

Теперь опишем процедуру, заполняющую табличную часть «КомандыПользователей» либо регистр сведений:

Если вы будете использовать регистр сведений (я назвал его «КомандыПользователей»), то закомментируйте/раскомментируйте соответствующие участки кода.

Обратите внимание, что если версия ниже 1С 8.3.6, то в коде переменную Параметр надо преобразовать из Юникода (этот участок обозначен в коде в комментарии):

В процедуре ЗаполнитьРС() вызывается функция ВыполнитьКомандуБота(ЗаписьРегистра, Параметр), где ЗаписьРегистра – это строка табличной части ТаблицаПонимаемыхКоманд. Параметр – параметр команды (то, что написал боту пользователь).

Вот и все – обработка прилагается.

Отдельное спасибо пользователю Инфостарт igo1 - перекодировка из Юникода (Unicode) в строку.

Основу для построения чата для версии 1С ниже 8.3.6 (парсер JSON) получил отсюда

UPD. В комментариях был задан вопрос " как отправлять файлы ".

Вот текст процедуры, которая выполняет отчет "Продажи" (на СКД), сохраняет результат в Excel и отправляет в Telegram^

Читайте также: