Mattermost - корпоративный чат на собственном сервере с управлением из 1С

Публикация № 1071735

Обмен - Интеграция с WEB

чат mattermost корпоративный сообщения уведомления chat messenger мессенжер slack

7
Интеграция с чатом Mattermost на базе 1С. Управление списком пользователей, создание команд и каналов, настройка вебхуков для получения сообщений в 1С.

Для удобства взаимодействия с большим число разрозненных офисов и сотрудников решил попробовать найти подходящий чат, для себя ставил ряд думаю очевидных критериев: бесплатный, свой сервер, api для управления, функциональность (вложения, оформления и т.д.), симпатичный, кроссплатформенный. Выбор остановил на этом, как удовлетворяющий всем им. Из недостатков: есть Enterprise Edition которая богаче функциональнее именно в административном плане, но стоит при этом резко больше бесплатной. И так:

Mattermost

Это корпоративный чат позиционирующий себя как альтернатива известному Slack. Интерфейс построен по принципу каналов, разделенных на виды:

  • Публичный - доступен всем желающим
  • Приватный - каналы по приглашению
  • Личный - тет-а-тет переписка (можно небольшой группой)

Чат имеет обширную api и описание к нему, через которые я смог реализовать все необходимое мне в 1С. А так же поддерживает плагины, но лично я не нашел необходимые/подходящее мне. Функционал плагинов ещё в стадии беты, поэтому нужно посмотреть что будет дальше. Отдельно хочу отметить штатную функцию "Ответить" создающую как бы под ветку канала, объединяя все сообщения в одну линию - удобно.

Поддерживаются все популярные платформы:

Установку сервера производил по инструкции из документации. Работа в линуксе мне не привычна, погуглив всякое смог установить и настроить и https. В первый раз ставил через докер (изучение заняло пару дней), но потом пришел к мнению что лучше ставить напрямую (поставил за час используя багаж знаний с первой попытки), так как это и так выделенный сервер (для справки: 2 гб, 2 ядра).

1C MattermostService

Для управления чатом написал отдельную конфигурацию. В своей разработке, я всегда стараюсь выносить дополнительный функционал отдельно от рабочей базы. Выстраивая процесс обмена так: Рабочая база (изолирована из вне) сама инициализирует обмен с нужной сервисной базой выгружая и получая данные. Это позволяет обезопасить рабочую базу, и оставляет мне контроль над сервисными функциями. Конфигурация имеет только блок управления сервером Mattermost, механизмы обмена с рабочей базы вынесены в расширение и не представлены в публикации (так как имеют узкоспециальное назначение под клиента в специально разработанной под него конфигурации).

Механика управления следующая: После установки сервера Mattermost в нём создается специальный пользователь-аля бот. Его данные прописываются в параметрах сервера, и все дальнейшие действия выполняются от его имени. Конфигурация позволяет:

  1. Управлять командами и каналами: создавать, обновлять и получать данные с сервера.
  2. Управлять пользователями: создавать и удалять пользователей, регистрировать в командах и каналах.
  3. Настраивать вебхук на канал для блокировки сообщений в нем.
 
 Настройка вебхука

По поводу вебхука: Я его использую для "ленты новостей" - т.е. публичный канал, в который по умолчанию подключаются все пользователи. Так как функции администрирования в Mattermost доступны только в платной редакции, я реализовал это через 1С. Когда пользователь пишет сообщение в этот чат, вызывается исходящий вебхук к серверу 1С, который проверяет, может ли пользователь сообщения писать в нем. Если нет, то посылает команду на удаление этого сообщения. В идеале, хотелось бы ещё добавить уведомление в приват для этого пользователя, что туда писать нельзя, поэтому сообщение удалено. Думаю в будущем добавлю.

 
 Скриншоты интерфейса

Работает на 1С:Предприятие 8.3 (8.3.13.1513)

Mattermost Версия: 5.10.0 Версия Схемы Базы Данных: 5.10.0 База данных: postgres

П.С.

Конфигурация распространяется "как есть" работает у меня ) Вы можете пилить под себя как хочется. Из опыта могу сказать, что пытался встроить чат прям в обычную форму через ПолеHTMLДокумента, переводя (через реестр) на использование в 1С IE11. Чат работал, но утекала память. На новой версии платформы с встроенным "webkit`ом" у меня не заработало. Поэтому пришлось от этой идеи отказаться.

У меня маленький опыт работы в управляемых формах и организации поэтапных вызовов (клиент-сервер-фоновые задания) поэтому если я что-то сделал не правильно - буду рад совету "как правильно".

В конфигурации содержится КонсольЗаданий за авторством (c) Душелов'2009 - спасибо ему за разработку.

7

Скачать файлы

Наименование Файл Версия Размер
Mattermost - корпоративный чат на собственном сервере с управлением из 1С:
.cf 230,70Kb
04.06.19
0
.cf 1.0 230,70Kb Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. kolabaister 2 04.06.19 19:34 Сейчас в теме
5. tanat74 30 05.06.19 12:37 Сейчас в теме
11. GreenDragon 12.06.19 17:02 Сейчас в теме
(5) А почему не Rocket.Chat? Сейчас тоже сидим на mattermost, но до этого я прикручивал Рокет, и он мне показался удобнее в плане интеграции с чем угодно. Особенно порадовали скрипты для преобразования пакетов данных от этого самого "чего угодно" в "какой нравится" вид.
Rocket.Chat Incoming WebHook Scripting
14. GreenDragon 12.06.19 17:13 Сейчас в теме
(11) Да, ещё дико бесит, что нельзя настроить мерцание иконки клиента при получении новых сообщений - только малюсенькая красная точка появляется. В рокете полгода назад прикрутили мерцание после пачки ишузов в его репозитории на гитхабе (как в спарке, аське и прочих допотопных клиентах, потому как гораздо эффективнее привлекается внимание).
16. tanat74 30 12.06.19 17:22 Сейчас в теме
(11) Я многие чаты смотрел. В целом первые попытки делал на Zulip, но там как то совсем грустно было с апи (а может я не разобрался), решил попробовать mm. Ну и так на нем остановился. То что вы скинули действительно интересно, может в будущем по изучаю на досуге.
17. GreenDragon 12.06.19 17:26 Сейчас в теме
(16) У нас просто завернули Рокет по ряду внутренних политик в компании. Но мне действительно понравилось с ним взаимодействовать - как-то "лампово" прям.
18. tanat74 30 12.06.19 17:28 Сейчас в теме
(17) Ну если речь, в частности о дизайне, то да, мне кажется строгий дизайн mm более подходит под корпоративные стандарты.
19. GreenDragon 12.06.19 17:31 Сейчас в теме
(18) Не, суть не в этом. Дизайн прикрутить можно самому - делай форк в гитхабе, крути свой дизайн и собирай дистрибутив, если очень нужно https://github.com/RocketChat/Rocket.Chat
У нас были скорее высокие требования к стабильности и защищённости - а с этим у Рокета полгода назад всё было не столь радужно.
2. Steelvan 04.06.19 20:12 Сейчас в теме
7. tanat74 30 05.06.19 12:41 Сейчас в теме
(2) Докер можно скачать и с их официального сервера https://mattermost.com/download/
Или это просто реклама bitnami? Дак она и там тоже есть)
3. Steelvan 04.06.19 20:13 Сейчас в теме
Вот еще список виртуалок других беседок.

https://bitnami.com/stacks/chat
12. GreenDragon 12.06.19 17:07 Сейчас в теме
(3) docker run --name mattermost-preview -d --publish 8065:8065 mattermost/mattermost-preview
И всё. Без вот этой вот порнографии с виртуалками
4. Serj1C 476 05.06.19 07:25 Сейчас в теме
6. tanat74 30 05.06.19 12:38 Сейчас в теме
(4) Не понимаю этого термина в этом контексте.
GreenDragon; +1 Ответить
9. Serj1C 476 06.06.19 08:18 Сейчас в теме
(6) DevOps на первом скриншоте
Прикрепленные файлы:
15. GreenDragon 12.06.19 17:16 Сейчас в теме
(9) Это канал. А вообще DevOps - это набор практик. Попробуйте уточнить для себя термин, прежде чем употреблять, тогда получится эффективнее получать ответы на вопросы.
8. maxim4566 05.06.19 22:24 Сейчас в теме
Я так понимаю как замена сервера взаимодействия от 1С
10. DonAlPatino 53 11.06.19 11:46 Сейчас в теме
(8) Я вот как раз не очень понял - можно ли подключить к этому делу несколько разных инфобаз и как оно с пользователями в таком случае разберется (Вроде это как раз то, что СВ делает из коробки)?
13. GreenDragon 12.06.19 17:10 Сейчас в теме
(10) Можно создать отдельные команды под разные базы, можно просто слать в разные каналы, можно слать в один, но автором сообщения будет пользователь с именем базы... Тут вообще никаких трудностей с этим.
21. DonAlPatino 53 13.06.19 10:51 Сейчас в теме
(13) Стоп. Т.е. бот шлет сообщение всем подписанным на канал? Про пользователей базы он не знает и персонально никому ничего послать не может? Ну тогда же это не замена СВ. СВ же именно с пользователями работает...
22. GreenDragon 13.06.19 10:58 Сейчас в теме
(21) это реализуемая фича. СВ хороша тем, что это всё ВНУТРИ базы. А снаружи можно прикрутить с разной степенью сложности что угодно. Хоть автоматизированные таблички с клинописью.
23. tanat74 30 13.06.19 11:23 Сейчас в теме
(21) Ваши ожидания слишком завышены. СВ это интегрированный продукт 1С, гораздо более богатый (чат, видео, удаленное подключение), но он платный (а именно включен только в ключи КОРП). Mattermost это корпоративный чат и только. К плюсам можно отнести бесплатность ну и пожалуй кроссплатформенность включая ios и android. Что для СВ дело времени.
По сообщениям: в рамках mattermost можно создавать личный чат, а потом писать туда от имени бота. Ссылка на апи: https://api.mattermost.com/
24. DonAlPatino 53 13.06.19 14:13 Сейчас в теме
(23)Ну я просто увидел (8) и решил, что человек знает больше, чем написано в статье. По факту вы абсолютно правы.
20. tanat74 30 12.06.19 17:32 Сейчас в теме
(10) С точки зрения этой разработки, этот момент нужно будет допиливать самостоятельно, так как нужно.
Оставьте свое сообщение