Интеграция 1С и корпоративного jabber-чата + пример конфигурации "Служба заявок"

22.05.13

Разработка - Разработка внешних компонент

Jabber-клиент, основанный на php, как следствие, без проблем работающий на любой версии Windows.
Модифицирован для управления посредством создания управляющих файлов, то есть 1С в серверном режиме может полноценно взаимодействовать с клиентом без подключения внешних компонент.
Плюс добавлен пример простой конфигурации "Служба заявок", взаимодействие с которой осуществляется через jabber-чат.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Jabber-клиент
.zip 17,08Kb
66 2 500 руб. Купить
Демо-база "Служба заявок"
.dt 101,18Kb
65 2 500 руб. Купить
файл конфигурации "Служба заявок"
.cf 92,19Kb
37 2 500 руб. Купить
PHP-машина
.ZIP 7,08Mb
47 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Итак, задача:

Запустить на сервере 1С jabber-бота для корпоративного чата, управлять которым будет база 1С в серверном режиме.

Перерыв опубликованные решения, выяснил что получить стабильную работу на внешних компонентах в серверном режиме толком никому не удалось,  кроме одного решения, которое, правда, может только отправлять сообщения (//infostart.ru/public/121078/), основанное на php-классе, работающем с протоколом XMPP (http://webi.ru/webi_files/xmpp_webi.html).

Было принято решение допилить класс, правда php я вижу в первый раз, но оказалось что это не особо то и сложно.

Что получилось в итоге: добавлена возможность отправлять сообщения из xml-файла, сохранять полученные сообщения, кроме id пользователя также получать с сервера его ник, посылать на сервер время от времени keep-alive пакеты, чтобы не вываливаться в оффлайн, сохранять в файл уведомления о появлении пользователей в онлайне, сохранять в файл ростер пользователей и далее по мелочи еще всякое.

Плюс была написана простенькая конфигурация, реализующая службу заявок в самом примитивном варианте.

 

Об установке: 

клиент представляет из себя 4 файла:

config.ini.php - файл настроек: подключение к серверу, настройки логирования, статус и прочее

index.php - файл запуска клиента: осуществляет подключение, "прослушивание" сервера и чтение управляющих файлов.

xml.class.php - класс для разбора xml (jabber ими общается) - этот файл не модифицировался.

xmpp.class.php - класс для работы с протоколом XMPP, собственно обеспечивает всю работу клиента.

 

Для работы всего этого дела нужна PHP-машина - скачать ее можно тут: http://windows.php.net/download/#php-5.3

или во вложенных файлах (установка не требуется).

Запускаем так: либо связываем расширение php с php.exe и запускаем index.php, либо запускаем php.exe -f %путь к index.php%

После этого в чате должен появиться пользователь, в соответствии с настройками в config.ini.php


Разворачивание клиента на сервере:

(если планируется использование конфигурации, то лучше начать с нее - по тексту ниже):

Ставим/размещаем php-машину.

На сервере Windows 2008 делаем задачу в планировщике задач, в более ранних версиях пытаемся сделать службу - описано тут: http://araxgroup.ru/content/view/114/65/

У меня более ранней нет, так что я я сделал скрины с параметрами задания (системный администратор я так себе, так что возможно галочки я понатыкал не совсем верно, но месяц тестирования проблем не выявил)

 

 

После запуска задания пользователь сервера должен залогиниться в чат.

 

Развертывание конфигурации "Служба заявок":

Конфигурация представляет собой электронный журнал заявок (в примере журнал отдела ИТ). Заявки принимаются через корпоративный чат через бота, представляющего отдел. При получении заявки через чат создается документ-заявка на исполнителей отдела (которые прописаны в табличной части подразделения) и рассылается им уведомление. Как пользователь так и исполнители могут управлять заявками , смотреть свои задачи и т.д. путем ввода команд боту. Список доступных команд можно получить отправив боту команду "!Помощь".

Про прописывание на сервере базы писать не буду, это к ЖКК.

После установки и запуска базы должно заработать регламентное задание, которое каждые 10 секунд должно мониторить папку с клиентом. За путь к папке клиента отвечает константа "Каталог клиента".

Конфигурация писалась для поддержки нескольких подразделений (и нескольких клиентов), но пока работает только с одним (для нескольких надо ее допилить/оттестировать), поэтому в папке клиента будет еще папка с названием пользователя подразделения, где и будут лежать файлы клиента пользователя этого подразделения.

Размещать, лазить в файлы php и править их необязательно - всё можно сделать из формы справочника "Настройки клиента подразделения":  файлы клиента есть в макете в конфигурации, файл настроек сгенерируется автоматически по нажатию кнопки.

Ставим/размещаем php-машину. После этого создаем задачу в планировщике/службу и запускаем ее.

Если всё правильно сделано, то теперь jabber-клиент связан с 1С, и должен присутствовать онлайн в чате. Можно ему отправить слово "!Помощь", чтобы проверить что он работает.

Также в конфигурации есть служебная обработка по управлению jabber-клиентом - с помощью ее можно запустить/остановить клиент, отправить/получить вручную сообщения, получить и загрузить в базу список всех пользователей сервера (ростер).

 

Итого:

Всё это дело тестировалось на связке Windows Server 2008 R2 + Openfire 3.6.4 (w/ntlm patch) + Pandion/QIP. Работает стабильно, в оффлайн не вываливается, при перезагрузке сервера автоматически поднимается.

Вероятно под другие сервера/клиенты придется класс работы с XMPP допилить напильником, потому как сам столкнулся например с тем что клиент QIP общается с сервером немного по другому чем Pandion, отчего некоторые методы не работали.

Всё опубликованное не претендует на роль конечного продукта и кто пожелает может допиливать клиент/ конфигурацию под свои нужды.

 


Upd (26.02.13): исправил ошибку с определением онлайн-статуса пользователей.

Upd (16.05.13): исправил найденные ошибки в клиенте и конфигурации, добавил чат-боту аватар

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Разработка внешних компонент POS терминал Рабочее место Розничная торговля Программист Пользователь 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Реклама, PR и маркетинг Управленческий учет Платные (руб)

Медиадисплей покупателя может отображать текущую покупку на кассовом месте, показывать видеорекламу, баннеры, во время простоя разворачивать рекламу на весь экран. Экран можно использовать в качестве графического меню-борда в кафе и видеовывески. В качестве устройства отображения можно использовать Android-планшеты, смарт-телевизоры с Android, мониторы или проекторы под управлением Windows или Linux-компьютера. Linux-версия успешно запускается на одноплатных компьютерах Raspberri Pi и Orange Pi. Настраивается ЛЮБОЙ ДИЗАЙН экрана при помощи встроенного графического редактора! Решение можно масштабировать от одного экрана до тысяч экранов с централизованным управлением.

18300 руб.

30.05.2017    57147    11    71    

48

Разработка внешних компонент Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 Платные (руб)

Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) . Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с 64-разрядной платформой, а так же имеет расширенную функциональность, например, сохранение результата непосредственно в PDF без использования сторонних утилит. Прекрасно работает на сервере, тонком клиенте и веб-клиенте (проверена работа в браузерах Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).

5084 руб.

12.05.2020    33783    145    100    

100

Разработка внешних компонент Программист 1С 8.3 Бесплатно (free)

В современных корпоративных решениях на платформе 1С:Предприятие 8.3 всё чаще возникает потребность в визуальном моделировании и автоматизации бизнес-процессов с использованием нотации BPMN 2.0. Стандартные средства платформы не предоставляют полноценного редактора BPMN, однако интеграция открытой библиотеки bpmn-js позволяет реализовать интерактивное моделирование бизнес-процессов непосредственно в 1С. В статье рассмотрены архитектура решения, пошаговая инструкция по сборке библиотеки из исходников для WebKit, а также примеры программного взаимодействия между 1С и JavaScript.

03.04.2026    2440    SultanovStas    8    

21

Разработка внешних компонент Системный администратор Программист Стажер Бесплатно (free)

Библиотека для работы с базами SQLite из 1С на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!

14.01.2025    6939    bayselonarrend    17    

54

Разработка внешних компонент Программист 1С:Предприятие 8 Россия Бесплатно (free)

В статье описывается приложение-конструктор внешних компонент (native API). Конструктор упрощает процесс разработки за счет удобного добавления всех нужных функций и процедур в графическом режиме, с указанием их параметров и типов параметров. На выходе приложение генерирует готовый код на С++ и Rust и позволяет сразу приступить к реализации, без настройки API компоненты вручную.

04.12.2024    11959    kovalevdmv    29    

83

Разработка внешних компонент Механизмы платформы 1С Программист Стажер 1С:Предприятие 8 Бесплатно (free)

Некоторые практические аспекты создания внешних компонент на языке С++ для платформы 1С 8.3++.

26.01.2024    12162    starik-2005    40    

49
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. 1С_Мастер 62 26.02.13 12:04 Сейчас в теме
В описании клиента идет речь о четырех файлах, а в архиве только 3. Нет файла config.ini.php
2. NikeeNik 80 26.02.13 13:01 Сейчас в теме
да, ошибка. сейчас исправлю. спасибо!
3. ITEkb 27.02.13 08:24 Сейчас в теме
Подскажите, если я на линуксовом сервере работаю, а клиенты - компьютеры с windows
Будет ли работать такая цепочка?
4. NikeeNik 80 27.02.13 09:06 Сейчас в теме
(3) Про Линукс я только знаю что есть такая ОС :)
Но в целом - Если 1С-сервер работает под линуксом и у него крутится служба, обслуживающая регламентные задания, то препятствий не вижу - никаких методов в 1С, относящихся только к Windows, не требуется, только чтение/запись xml-файлов. Openfire сервер это кроссплатформенное приложение, PHP тоже. Причём все эти компоненты могут крутиться на разных машинах.
На какой платформе клиенты - вообще по идее всё равно, но я тестировал только с Пандионом и QIP-ом, и они показали местами разное поведение, какие-то другие клиенты вреоятно могут работать так, что некоторые методы класса xmpp.class.php придется допилить для того чтобы они заработали с этим клиентом.
5. ITEkb 27.02.13 09:11 Сейчас в теме
(4) Smallrat, хороший ответ, спасибо!
6. denek2004 28.03.13 13:45 Сейчас в теме
интересное решение..надо попробывать
Для отправки сообщения требуется регистрация/авторизация