Для удобства взаимодействия с большим число разрозненных офисов и сотрудников решил попробовать найти подходящий чат, для себя ставил ряд думаю очевидных критериев: бесплатный, свой сервер, api для управления, функциональность (вложения, оформления и т.д.), симпатичный, кроссплатформенный. Выбор остановил на этом, как удовлетворяющий всем им. Из недостатков: есть Enterprise Edition которая богаче функциональнее именно в административном плане, но стоит при этом резко больше бесплатной. И так:
Mattermost
Это корпоративный чат позиционирующий себя как альтернатива известному Slack. Интерфейс построен по принципу каналов, разделенных на виды:
- Публичный — доступен всем желающим
- Приватный — каналы по приглашению
- Личный — тет-а-тет переписка (можно небольшой группой)
Чат имеет обширную api и описание к нему, через которые я смог реализовать все необходимое мне в 1С. А так же поддерживает плагины, но лично я не нашел необходимые/подходящее мне. Функционал плагинов ещё в стадии беты, поэтому нужно посмотреть что будет дальше. Отдельно хочу отметить штатную функцию "Ответить" создающую как бы под ветку канала, объединяя все сообщения в одну линию — удобно.
Поддерживаются все популярные платформы:
Установку сервера производил по инструкции из документации. Работа в линуксе мне не привычна, погуглив всякое смог установить и настроить и https. В первый раз ставил через докер (изучение заняло пару дней), но потом пришел к мнению что лучше ставить напрямую (поставил за час используя багаж знаний с первой попытки), так как это и так выделенный сервер (для справки: 2 гб, 2 ядра).
1C MattermostService
Для управления чатом написал отдельную конфигурацию. В своей разработке, я всегда стараюсь выносить дополнительный функционал отдельно от рабочей базы. Выстраивая процесс обмена так: Рабочая база (изолирована из вне) сама инициализирует обмен с нужной сервисной базой выгружая и получая данные. Это позволяет обезопасить рабочую базу, и оставляет мне контроль над сервисными функциями. Конфигурация имеет только блок управления сервером Mattermost, механизмы обмена с рабочей базы вынесены в расширение и не представлены в публикации (так как имеют узкоспециальное назначение под клиента в специально разработанной под него конфигурации).
Механика управления следующая: После установки сервера Mattermost в нём создается специальный пользователь-аля бот. Его данные прописываются в параметрах сервера, и все дальнейшие действия выполняются от его имени. Конфигурация позволяет:
- Управлять командами и каналами: создавать, обновлять и получать данные с сервера.
- Управлять пользователями: создавать и удалять пользователей, регистрировать в командах и каналах.
- Настраивать вебхук на канал для блокировки сообщений в нем.
Настройка вебхука
По поводу вебхука: Я его использую для "ленты новостей" — т.е. публичный канал, в который по умолчанию подключаются все пользователи. Так как функции администрирования в Mattermost доступны только в платной редакции, я реализовал это через 1С. Когда пользователь пишет сообщение в этот чат, вызывается исходящий вебхук к серверу 1С, который проверяет, может ли пользователь сообщения писать в нем. Если нет, то посылает команду на удаление этого сообщения. В идеале, хотелось бы ещё добавить уведомление в приват для этого пользователя, что туда писать нельзя, поэтому сообщение удалено. Думаю в будущем добавлю.
Скриншоты интерфейса
Работает на 1С:Предприятие 8.3 (8.3.13.1513)
Mattermost Версия: 5.10.0 Версия Схемы Базы Данных: 5.10.0 База данных: postgres
П.С.
Конфигурация распространяется "как есть" работает у меня ) Вы можете пилить под себя как хочется. Из опыта могу сказать, что пытался встроить чат прям в обычную форму через ПолеHTMLДокумента, переводя (через реестр) на использование в 1С IE11. Чат работал, но утекала память. На новой версии платформы с встроенным "webkit`ом" у меня не заработало. Поэтому пришлось от этой идеи отказаться.
У меня маленький опыт работы в управляемых формах и организации поэтапных вызовов (клиент-сервер-фоновые задания) поэтому если я что-то сделал не правильно — буду рад совету "как правильно".
В конфигурации содержится КонсольЗаданий за авторством (c) Душелов’2009 — спасибо ему за разработку.
А пуши у вас работают?
Готовая виртуалка беседки «mattermost».
https://bitnami.com/stack/mattermost/virtual-machine
Вот еще список виртуалок других беседок.
девопс бесплатный?
(1) Да, я прописал их сервер.
https://monosnap.com/file/l9UF1n1B6Q7ZJROA1Gpn6nXmhatp3x
(4) Не понимаю этого термина в этом контексте.
(2) Докер можно скачать и с их официального сервераhttps://mattermost.com/download/
Или это просто реклама bitnami? Дак она и там тоже есть)
Я так понимаю как замена сервера взаимодействия от 1С
(6) DevOps на первом скриншоте
(8) Я вот как раз не очень понял — можно ли подключить к этому делу несколько разных инфобаз и как оно с пользователями в таком случае разберется (Вроде это как раз то, что СВ делает из коробки)?
(5) А почему не Rocket.Chat? Сейчас тоже сидим на mattermost, но до этого я прикручивал Рокет, и он мне показался удобнее в плане интеграции с чем угодно. Особенно порадовали скрипты для преобразования пакетов данных от этого самого «чего угодно» в «какой нравится» вид.
Rocket.Chat Incoming WebHook Scripting
(3) docker run —name mattermost-preview -d —publish 8065:8065 mattermost/mattermost-preview
И всё. Без вот этой вот порнографии с виртуалками
(10) Можно создать отдельные команды под разные базы, можно просто слать в разные каналы, можно слать в один, но автором сообщения будет пользователь с именем базы… Тут вообще никаких трудностей с этим.
(11) Да, ещё дико бесит, что нельзя настроить мерцание иконки клиента при получении новых сообщений — только малюсенькая красная точка появляется. В рокете полгода назад прикрутили мерцание после пачки ишузов в его репозитории на гитхабе (как в спарке, аське и прочих допотопных клиентах, потому как гораздо эффективнее привлекается внимание).
(9) Это канал. А вообще DevOps — это набор практик. Попробуйте уточнить для себя термин, прежде чем употреблять, тогда получится эффективнее получать ответы на вопросы.
(11) Я многие чаты смотрел. В целом первые попытки делал на Zulip, но там как то совсем грустно было с апи (а может я не разобрался), решил попробовать mm. Ну и так на нем остановился. То что вы скинули действительно интересно, может в будущем по изучаю на досуге.
(16) У нас просто завернули Рокет по ряду внутренних политик в компании. Но мне действительно понравилось с ним взаимодействовать — как-то «лампово» прям.
(17) Ну если речь, в частности о дизайне, то да, мне кажется строгий дизайн mm более подходит под корпоративные стандарты.
(18) Не, суть не в этом. Дизайн прикрутить можно самому — делай форк в гитхабе, крути свой дизайн и собирай дистрибутив, если очень нужноhttps://github.com/RocketChat/Rocket.Chat
У нас были скорее высокие требования к стабильности и защищённости — а с этим у Рокета полгода назад всё было не столь радужно.
(10) С точки зрения этой разработки, этот момент нужно будет допиливать самостоятельно, так как нужно.
(13) Стоп. Т.е. бот шлет сообщение всем подписанным на канал? Про пользователей базы он не знает и персонально никому ничего послать не может? Ну тогда же это не замена СВ. СВ же именно с пользователями работает…
(21) это реализуемая фича. СВ хороша тем, что это всё ВНУТРИ базы. А снаружи можно прикрутить с разной степенью сложности что угодно. Хоть автоматизированные таблички с клинописью.
(21) Ваши ожидания слишком завышены. СВ это интегрированный продукт 1С, гораздо более богатый (чат, видео, удаленное подключение), но он платный (а именно включен только в ключи КОРП). Mattermost это корпоративный чат и только. К плюсам можно отнести бесплатность ну и пожалуй кроссплатформенность включая ios и android. Что для СВ дело времени.
https://api.mattermost.com/
По сообщениям: в рамках mattermost можно создавать личный чат, а потом писать туда от имени бота. Ссылка на апи:
(23)Ну я просто увидел (8) и решил, что человек знает больше, чем написано в статье. По факту вы абсолютно правы.