А кто-нибудь смог подружить 1С:Систему Взаимодействия и Телеграм? Штатными средствами 1C:CS. Как на 1С сделать систему обмена с телеграм давно известно и понятно. Но в 17 платформе можно телеграм увязать с Системой взаимодействия. Бот создал, в Системе интеграцию настроил и ... ничего. Ошибок нет, но и результата нет. Сообщения боту не приходят в систему, внешний пользователь не создается, как и новое обсуждение. Вроде и ошибаться особо негде, но вот не взлетело. Может кто уже ковырял и знает где и что потрогать чтобы заработало.
(2) Конфигурация самопальная. Сервер взаимодействия развернут локально. Переписка на уровне телеграм, как я понял, должна генериться самостоятельно при получении сообщения из телеграмм. Но вот не генерится. И внешний пользователь не создается.
(3) Да, платформа 17.1549. Режим совместимости вообще вырублен. Внутренние чаты работают. И даже пересылку файлов, хоть и с бубном, но удалось наладить. А вот Телеграмм в интеграции есть, а сообщения не приходят. Причем молча не приходят. Хоть бы ошибку какую дала.
30.5.2. Схема работы с мессенджером
Для интеграции мессенджера и прикладного решения необходимо выполнить следующие действия:
● В мессенджере выполнить действия, необходимые для создания механизма взаимодействия со сторонним программным обеспечением. Это может быть бот, группа и т. д.
● В прикладном решении создать новую интеграцию ‑ связь системы взаимодействия и мессенджера. Это можно сделать как интерактивно (с помощью стандартной функции), так и из встроенного языка.
Собственно взаимодействие в такой интегрированной системе будет выглядеть следующим образом:
● Пользователь мессенджера находит нужного бота, который связан с прикладным решением. Поиск может быть выполнен любым способом, который поддерживается мессенджером (по имени, по QR-коду и т. д.).
● Затем пользователь пишет найденному боту сообщение.
● Сервер мессенджера передает сообщение системе взаимодействия.
● При получении входящего сообщения сервер системы взаимодействия:
● Для каждого нового пользователя мессенджера создает нового пользователя системы взаимодействия. Пользователю выставляется отметка о том, что это «внешний» пользователь. Информация о пользователе заполняется на основании данных, полученных от мессенджера.
● Создает внеконтекстное, групповое, отображаемое обсуждение (если таковое не было создано ранее) для этого пользователя. Данное обсуждение получает специальную отметку о том, что это обсуждение с «внешним» миром. Заголовок обсуждения имеет имя внешнего пользователя или группового чата мессенджера. В заголовке обсуждения отображается, из какого мессенджера начато обсуждение. Вид заголовка зависит от того, каким образом выполняется общение с ботом мессенджера: ему пишут напрямую или добавляют бота в какую-то группу. Это зависит от используемого мессенджера.
● Для созданного обсуждения создается список пользователей. В этот список входят: пользователь, начавший обсуждение и все пользователи, которые указаны при создании интеграции. Внешний пользователь оторажается с соответствующей пометкой.
● В созданное обсуждение добавляется полученное сообщение. Автором сообщения становится внешний пользователь. Оповещения в системе взаимодействия формируются по стандартным правилам. Для внешнего пользователя оповещения не создаются.
● Сообщение, отправленное из системы взаимодействия в мессенджер, будут написаны от имени бота в мессенджере. В качестве получателя будет выступать внешний пользователь системы взаимодействия (тот, кто начал обсуждение).
Таким образом, сообщения от внешних пользователей в системе взаимодействия будут персонифицированными (с точностью до того, как пользователь представлен в мессенджере). Сообщения, которые передаются из прикладного решения в мессенджер, будут анонимными, т. е. автором сообщений будет бот. Поэтому идентифицировать фактического пользователя прикладного решения, от имени которого написано то или иное сообщение, в мессенджере будет невозможно.
(7) Через http сервис и я умею. Но в документации для 8.3.17 написано, что не надо свой сервис делать. Система взаимодействия сама все сделает. Надо только бот в Интеграцию включить. Но вот что-то не делает.
(9) Общее описание увидел https://v8.1c.ru/platforma/news/novoe-v-platforme-8-3-17/. Есть ссылка на документацию по настройке?
На сколько понимаю работает на уровне сервера взаимодействия, соответственно нужно проверять доступ от телеграмм до него, если работает через хуки.
(10) Да. Я тоже так понял, что это будет работать если сервер взаимодействия наружу выведен. А поскольку он внутри, то ...Правда в документации об этом ни слова блин. Заметил что ситуация с веб-клиентом аналогичная. Если веб-клиент обращается по внутреннему IP, то все работает. Если по внешнему, то хрен.
(11) " Если по внешнему, то хрен." - организовывай от клиента VPN.
Вывешивать сервис с закрытым кодом в паблик при том что неизвестно с какого исходящего IP будет хук небезопасно.
(12) ВПН - это вариант. И он уже даже проверен. Но работе с телеграмм это не поможет. А хотелось-то именно это. Пробовал веб-сокет пробрасывать. Он вроде бы пробрасывается, но не срабатывает регистрация базы. Что делает команда "НачатьРегистрациюВСистемеВзаимодействия" - непонятно. Вернее непонятно, как она регистрирует. По каким портам и протоколам. Вот такая вот неприятность.
Заработал. И телеграмм и даже ВК. Правда и в том и в другом случае пришлось с бубном станцевать. Но тем не менее, сообщения боту в телеграмм падают в СВ, как и сообщения в группе ВК.
(21) Какая версия СВ? СВ 8.0.15 по умолчанию не поднимает Порт для интеграции. Его надо ручками создавать. 9.0 вроде бы все делает сама. Но не знаю. Ее еще не трогал. Она оказывается по данным не совместима с 8.0.
Если 8.0 то подскажу, что сделать чтобы порт интеграции поднялся.
(23) Путь по которому ответит СВ. Но в ВК есть еще один глючок. Там надо этот путь подтвердить. Штатными средствами это не решить. Как делал я. Отрубал СВ, включал обычный апач и возвращал на запрос проверочное число. Потом опять включал СВ и все заработало.
Уточняю. Вот такой файлик у тебя есть com._1c.ecs.integration.endpoint.yml ?
Это как раз порт интеграции. У меня не создался, пришлось ручками рисовать.
собеседники друг друга видят
7. При создании настройки сообщений из других программ во ВКонтакте создает новый сервер Callback с адресом сервера интеграции следующего вида:
8. Установлен IIS, и вот тут возникла затыка: из-за присутствия ":" в адресе, я никак не могу вернуть проверочный код для ВКонтакте.
9. При установке адреса сервера интеграции вручную вида
https://[my_dns_name]
и подтверждении его с помощью вашего метода, сообщения из ВК все равно не попадают в 1С с сообщением о невозможности подключения к серверу.
(27) Если можно - поподробнее, пожалуйста. В случае с websocket для wss указан jks и пароль - работает.
для integration не выходит ни с jks, ни с keystore, ни с импортом в cacerts.
(28) Вот здесь почитай. Как раз расписано как включить wss.
ITS или имеется в виду, что wss работает, но в интеграцию не цепляется?
Не доходят сообщения от бота? В какой системе?
(29)
websocket настроен, wss - true. keystore указан.
подключение по wss регистрирует СВ,
при попытке добавления интеграции - ошибка протокола (telegram https требует)
далее меняю настройки в integration : если просто прописать public-url и use-ssl, то св стартует,интеграция телеграм проходит по webhook приходит ответ об ошибке ssl сертификата (тут естественно, подробно рассказываю для чистоты эксперимента). как только прописываю keystore-path и прочее - СВ не запускается. в логах ошибки http-connector, tomcat. catalina, jsse и пр (java)..
(30) Ага. А вот такой файлик есть в конфигах СВ com._1c.ecs.integration.endpoint?
Это как раз связь между внешним и внутренним адресами.
И телега требует https без вариантов.
Хотя ... ошибка ssl сертификата - это нечто иное. Т.е. должен быть поднят полноценный https. Со своим сертификатом. Это безотносительно к wss. Т.е. на веб-сервере тоже должен быть поднят сертификат.
(30) Блин. У меня по другому реализовано. На СВ никаких сертификатов нет. А https пробрасывается с роутера на внутренний http. Хотя принципиальной разницы быть не должно, но вот почему https не поднимается на СВ - это как раз непонятно. и этого этапа у меня не было. поэтому даже подсказать что-то не могу :-(.
У меня в браузере пустой запрос на endpoint возвращает "Ресурс "/" не найден". Т.е. веб сервер СВ работает.
Но endpoint у меня внутренний IP и просто http.
(32)
никак не могу понять, по какому порту следует обращаться к СВ. com._1c.ecs.integration.endpoint.yml позволяет настроить только адрес и шифрование. Порт там не указывается, либо при явном указании игнорируется. Единственный порт, который отвечает ВКонтакту - это 9094, который настраивается в com._1c.ecs.websocket.yml, но тогда получаю
HTTP/1.1 200 Connection established
HTTP/1.1 400 Bad Request
(39) Спасибо огромнейшее, очень сильно помогли. Про network-interfaces на сайте ITS нет ни слова.
После небольших манипуляций с сертификатами интеграция с ВКонтакте заработала. При этом дополнительных шаманств с подтверждением адреса не потребовалось: при создании в 1С интеграции - СВ самостоятельно создал настройку в ВК и подтвердил адрес.
Я на сколько понял, в ВК при создании интеграции программным способом по запросу, код подтверждения не совпадает с тем, который указан на странице настройки в ВК. Он нужен только при создании вручную.
Интеграция с другими мессенджерами — новая функциональность
Реализована интеграция системы взаимодействия с мессенджером Telegram и социальной сетью ВКонтакте. Взаимодействие с мессенджером Telegram осуществляется через Telegram-бота. Администратор 1С:Предприятия должен создать такого бота в Telegram и затем зарегистрировать его в системе взаимодействия.
Пользователь Telegram пишет сообщение боту, система взаимодействия создает нового внешнего пользователя (если такого еще нет) и новое неконтекстное обсуждение (если такого еще нет). Участниками этого обсуждения являются внешний пользователь и пользователи системы взаимодействия, назначенные для участия во внешних обсуждениях.
При появлении новых сообщений в этом обсуждении пользователи системы взаимодействия получают уведомления по общим правилам, а внешний пользователь получает сообщение в Telegram от бота.
Взаимодействие с социальной сетью ВКонтакте организуется другим образом — на основе идентификатора группы и ключа доступа.
Во встроенном языке реализована объектная модель, позволяющая управлять интеграцией системы взаимодействия с внешними системами.
(16) Если совсем просто, то сообщения из бота телеграм падают в отдельное обсуждение с тем пользователем, который указан при настройке интеграции. Соответственно, когда пишешь в этом обсуждении пользователь телеграмм получает сообщение от бота.
Аналогично в ВК. Пишешь в сообщения группе, оно падает в СВ, пишешь в СВ, оно падает в личные сообщения пользователя ВК от имени группы.
(18) Доступ снаружи. Там вебхуки. Поскольку это стремно, я сделал по другому. СВ внутри. Снаружи проброшен https на http внутрь. Этого достаточно. https на внешнем адрес обязателен.
(32)
У меня в такой конфигурации в integration use-ssl: false, проброс порта с 443 на 80 - выдает ошибку Error: SSL connect error.
Если поставить use-ssl: true - не запускается СВ. Посмотрел куда он обращается - после обращения к localhost:8087 останавливается с ошибкой
Failed to initialize component [Connector[HTTP/1.1-8443]],exception=java.lang.NoClassDefFoundError: org/apache/tomcat/util/net/jsse/JSSEImplementation
Caused by: java.lang.ClassNotFoundException: Failed to load class "org.apache.tomcat.util.net.jsse.JSSEImplementation" by the following classloaders: chassis, chassis, app.
Если поднять websocket с портом 443 и подключить ssl, указать путь к сертификату и пароль, СВ заводится. но ВКонтакте выдает ошибку HTTP 400 Bad request
Я уже и не знаю куда дальше копать.
Одно не дает спокойствия - обращение к порту 8087 при использовании ssl. Если не использовать ssl, то СВ при подключении не обращается к этому порту.
(34) Погоди. websocket и порт интеграции - это РАЗНЫЕ порты. Для интеграции нужен https порт. Для телеграма это либо 443 либо 8443. Он другие не жрет вроде. Т.е. надо поднять порт для интеграции. Это делается файлами конфига. Вот этот файл com._1c.ecs.integration.endpoint.yml как раз и поднимает порт для интеграции. У меня поднят http, поскольку СВ наружу не смотрит. Для интеграции поднять https на главном роутере который просто пробрасывает запросы на внутренний http. Вероятно можно и сразу https поднять, если СВ смотрит наружу.
Но все это не имеет никакого отношения к wss. Это отдельная песня.
Кстати, вариант поднятие wss с SSL на роутере и пробросе на внутренний wss без SSL.
Это я как раз про свой вариант реализации. Изначально предполагалось что СВ будет работать только в локалке, а потом выяснилось что и внешние пользователи есть. Которые через веб работают.
Все решается на уровне главного шлюза. Запросы нему, а он их форвардит в локалку.
Все это про СВ 8.5. Более свежие версии еще не смотрел, поскольку они не совместимы с 8.5.
(35)
Да все верно. Так и есть. Именно после конфигурирования integration.yml порт 8443 и не взлетает по ошибкам java.
Ваш вариант мне понятен, вероятно так и сделаю через софтовый роутер.
По домену правило Nat с домен:8443 на локальныйадрес:80. А Integration поднять уже без сертификатов на 80 порту на СВ. Верно?
(45) Так. Чтобы проверить порт интеграции, надо в браузере набрать тот УРЛ который вы указали в public-url интеграции. Обязательно должно быть https и порт 443, 8443, еще пару каких-то, не помню. Телеграм не все порты жрет. Если в браузере выпала ошибки из явы, то значит порт живой. Если какая-то другая, значит что-то не так настроено.
Т.е. если у вас указан public-url https://мойсайт/teleg, то этот УРЛ в браузере ответит ошибкой явы. Если порт не 443, то его надо явно указать. Просьба не путать порт для интеграции и порт порт для веб-сокет. Это две большие разницы.
(46)Спасибо большое интеграция с телеграм прошла успешно, вот только в 1с с телеграм ничего не приходит. Может поможете советом еще, буду очень благодарен.
(47) Странно, если интеграция прошла, то сообщения должны падать. Т.е. пишете в боте сообщение и оно в СВ не попадает? А в интеграции выбран пользователь СВ, которому должны падать сообщения с телеги? Это важно.
(48)Выбран и все пользователи. Единственное заметил в "Управлении системы взаимодействия" есть категория "Пользователи" там напротив например Администратора "Информационная база" "Система взаимодействия" птички стоят, а "Интеграция " нет. Как у Вас?
(49) Интеграция - это пользователи которые создаются автоматом из входящих сообщений. предлагаю для эксперимента оставить в Интеграции телеги одного пользователя и опять написать в бот сообщение. Должно приходить. Кстати, а бот в телеге старый или новый? Если старый попробовать создать новый и переписать токен в интеграции от нового бота. Тут могут заморочки.
(53) Для интеграции достаточно 8443. Посмотри все-таки на бота телеграмм. Самое просто - создать нового бота. Если заработает, то значит дело в боте, а не СВ.
(54)Первым делом посмотрел Создал нового, тот же результат Попробовал с 1с-Диалог, подхватило с первого раза, сообщения и приходят и отправляются. Если Вам не жалко не смогли бы Вы сбросить на почту serjromСабакаgmail.com CS 10 Linux
(55) Очень странно. Просто если что-то не так настроено, то и интеграцию включить не получится. Если интеграция включилась, значит обмен с телегой прошел.
Боюсь что CS 10 я помочь не смогу.
(60) Ну если есть корпоративный мессенджер, то наверно в СВ смысла нет. Но если его нет, то СВ - это выход. А с учетом контекстных обсуждений и встроенного видео-звонка - это хороший выход. Даже внутри СЭД. Тем более что настроить корпоративный мессенджер на генерирование сообщений по событию на сервере 1С довольно проблематично. А тут легко и просто.
Коллеги, добрый день! У меня ошибка, после integration, use-ssl: true, служба CS не запускается. А в логах пишет, что Tomcat не стартует. Порт 443 открыт, для телеграмма.
2021/09/13-14:54:31.240-0,JAVA,0,level=ERROR,pid=6844,threadId=13,thread=launcher-start-thread (start),logger=org.apache.catalina.util.LifecycleBase,message=Failed to start component [Connector[HTTP/1.1-443]],exception=java.lang.NoClassDefFoundError: org/apache/tomcat/util/net/jsse/JSSEImplementation
Всем доброго утра!
Настроила чатбот через СВ, платформа 8.3.17
Работает, но файлы не уходят, ни скрины ни пдф. То есть отправляешь файл, а собеседнику тишина в чатботе, причем в обе стороны. Просто сообщения текстовые уходят норм. У всех так?
Вроде сервис 1cdialog до 100мб разрешает высылать, я отправляла меньше точно
(68) Насколько я помню в 3.17 в интеграции пересылка файлов не работает. Вроде пообещали в новых платформах, не помню 22 или может даже 23. Т.е. передача файлов через СВ и передача через Интеграцию - это совсем не одно и то же.
Добрый день а что в integration прописываю не так
integration:
public-url: https://example.org port: 8443
keystore-path: C:\ProgramData\1C\1CE\instances\cs\data\security\websocket-keystore.jks
keystore-password: password
useSsl: true
падаю как только собственно ставлю useSsl true
и падаю с ошибкой что порт 8443 закрыт.
вначале получаю такую же ошибку как в (63)
2021/09/13-14:54:31.240-0,JAVA,0,level=ERROR,pid=6844,threadId=13,thread=launcher-start-thread (start),logger=org.apache.catalina.util.LifecycleBase,message=Failed to start component [Connector[HTTP/1.1-443]],exception=java.lang.NoClassDefFoundError: org/apache/tomcat/util/net/jsse/JSSEImplementation
вот с таким я падаю в ошибку:
logger=org.apache.catalina.util.LifecycleBase,message=Failed to start component [Connector[HTTP/1.1-8443]],exception=java.lang.NoClassDefFoundError: org/apache/tomcat/util/net/jsse/JSSEImplementation
и что не так не могу понять а так был не правильный конфиг
(78) В файлике integration.yml в папке config у CS должно быть
integration:
public-url: https://ваш сервер.ru
Т.е. в public-url должен быть прописан ВНЕШНИЙ адрес. Причем https. А уж он средствами nginx или еще какими пробрасывает запросы и ответы внутрь на CS по http.
Отправляет он в любом случае по HTTPs обращаясь к той же телеге но назад он хочет получить по умолчанию по http чего не дает уже телега не положено по безопасности. поэтому просто адрес апача ставьте в настройка куда возвращать пакеты, а на апаче смотрите настройки как это делается через haproxy на apache
(80) Уважаемые, доброго всем. Прошу помочь с подключением бота телеграма, бьюсь над этим уже давно, но все никак, сообщения не приходят в 1с чат . Исходные данные:
Сервер взаимодействия (Обсуждения) зарегистрирован в 1с УТ 11 по доменному имени, через wss://mychat....
В вебсокете используется wss true и сертификат от Let's Encrypt и после таких манипуляций, чат заработал даже в браузере (самоподписанный сертификат такое не позволял). Удалось даже прикрутить с сертификатом приглашение внешних пользователей.
На сервере взаимодействия параметры файла integration.yml
Поднят также вебсервер на апаче, с привязанным к нему доменом (на котором исправно работает приглашалка для пользователей), в котором реализовано перенаправление трафика на внутренний IP сервера взаимодействия в файле mychat.....ru-le-ssl.conf, при этом проброс работает по имени домена.
На виртуальном сервере взаимодействия 192.168.1.145 также опубликована база по пути https://mychat....ru/integration по которому собственно и работает 1с в браузере, этот же путь и указан для интеграции телеграма.
В самой 1С, в окне "настроек сообщений из других программ" чат бот телеграма подключается, пользователь для которого должны приходить сообщение выбран, но когда я пишу из бота в телеграме, в 1с сообщение не приходят, вот очень хочется понять, что-же и где я сделал не так?
(84) Убрать ненужное это снять флажки "Использование"? А их (интеграции) можно как то удалить? Насоздавал когда тестировал, а теперь мусор висит и удалить не получается
Всем привет! Развернул сервер взаимодействия, зарегистрировал его в 1С. Конфигурация тестовая, пустая. Пользователи в ней могут общаться между собой. Соединение настроил защищенное. А вот что делать дальше, чтобы подключить бота «Телеграмм», не знаю. Подскажите, какие должны быть дальнейшие действия?
(87) Включить в СВ интеграцию с телегой. Т.е. в телеге создать бота, получить ключ и занести его в интеграцию. Из Функции для технического специалиста вызвать Управление системой взаимодействия и там уже все просто.
Ну а как создать бота телеги - инфы в инете полно.
(89) А как надо занести полученный ключ в систему интеграции? Я пытаюсь добавить новую интеграцию через функции технического специалиста, но при нажатии на кнопку "ОК" у меня выходит ошибка:
Ошибка при вызове метода контекста (Записать)
{ВнешняяОбработка.StandardCollaborationSystemManagement.Форма.IntegrationForm.Форма(208)}:Int.Write();
{ВнешняяОбработка.StandardCollaborationSystemManagement.Форма.IntegrationForm.Форма(213)}:SaveOnServer();
(91) 1) Конфигурация тестовая, там создан один пользователь с полными правами. Права админские где должны быть?
2) А как добавить токен и пользователя в настройки интеграции? На ИТС не увидел, как добавлять для локального сервера взаимодействия.
3) Пробовали на 8.3.18, 8.3.22 и 8.3.24. Везде выходит одна ошибка. Но мы всегда пытаемся добавить интеграцию через «Функции технического специалиста».
4) Вот я и спрашиваю каким образом добавить интеграцию для локального сервера взаимодействия, или это надо кодом добавлять на языке 1С?
(92) Итак, давай сначала. В телеге создать бота в системном боте https://t.me/BotFather Для созданного бота взять API токен
В Управлении системой взаимодействия в Интеграции создать Интеграцию. В ней указать что тип - Телеграм, придумать уникальное имя для интеграции, воткнуть токен который из телеги взяли и указать пользователей которым будет приходить сообщение от бота телеги.
Потом в телеге найти своего бота и что-то там написать. Это должно попасть в СВ.
Вот вроде и все.
Если СВ доступна снаружи, то дальше она все сама сделает.
Т.е. в настройках подключения СВ обязательно должен быть внешний адрес. Локальный не прокатит.
(95) Ключ надо обязательно. Там просто придумать название для интеграции.
А что написано на главной странице Управление СВ?
Адрес сервера, версия сервера. Ну и как платформа 1С.
2) Не нашел у себя где посмотреть эту информацию? Можете подсказать как посмотреть? Я открываю через "Функции для технического специалиста" но там ничего не отображается.
(98) Не понимаю о какой обработке идет речь. У меня есть только обработка, которая регистрирует информационную базу. Есть еще какая-то обработка? На сайте ИТС есть системные требования, приложил в файле.
(99) "Функции для технического специалиста" -> "Управление системой взаимодействия"
Сверху бужет менюшка с разными фкнуиями, а внизу параметры подключения.
Вот там и посмотреть и адрес и версию сервера.
И еще раз. КАКАЯ версия платформы 1С?