Jabber - бот как пример работы с сокетами на 1С через v7CLR.dll


Иногда полезно иметь интерфейс администрирования базы издалека.
Или нужно организовать обмен данными через сетевой интерфейс например с терминалом по собственному протоколу.

1С не умеет штатно работать с сокетами и найти более-менее подходящую специализированную библиотеку для этого мне не удалось.

Библиотека v7CLR.dll позволяет использовать в 1С объекты .NET, в числе который есть System.Net.Sockets.TcpClient.

В принципе v7CLR является бесплатной альтернативой  Elisy .Net Bridge

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

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

Для создания Jabber - клиента (бота) конечно проще использовать готовые библиотеки например библиотеку Душелова, но бот здесь сделан только в качестве примера и очень кривой.

Технические подробности:

  1. Для работы обработка требует установленных .NET,  v7CLR.dll
  2. Имя Jabber-сервера, порт, имя пользователя, пароль пользователя и UID того, кому отправлять сообщеня по умолчанию нужно указать в конце модуля обработки.
  3. Здесь реализован небезопасный способ авторизации на сервере, если Ваш сервер использует что-то другое - придется модифицировать процедуру Авторизоваться(). Как это делается я не разбирался, но посмотреть можно в соответствующей статье.
  4. Обработка сделана исключительно как проба сил и дорабатыватсья не будет.
  5. Чтение ответа сервера реализовано по таймеру, что очень неоптимально. Лучше генерить события.

 

Описание команд бота:

        1. #time Возвращает текущее время базы
        2. #date Возвращает текущую дату базы
        3. #dbname Возвращает имя базы в которой запущен бот
        4. #send,{имя пользователя JABBER},{текст сообщения} отправляет сообщение пользователю. Пример #send,admin2,Hello world!

        5. #help выводит подсказку по командам

upd. 31.03.2010

 - Добавлено заполнение списка контактов.

Файлы обработки:

-