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

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

6 Comments

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

    Это не совсем так: v7CLR не работает в 8-ке

    Reply
  2. MadDAD

    (1) Этого не знал. Но я специализируюсь на v7, и мне ее вполне хватает.

    Reply
  3. ruffnekk

    а исходники можно посмотреть?

    Reply
  4. MadDAD

    (3) ruffnekk, обработка не закрыта паролем. Если вы про исходники v7CLR — то автор ее не я.

    Reply
  5. MadDAD

    (3) ruffnekk, отнекропостю…

    Исходники компоненты таки есть тут — https://code.google.com/p/v7clr/

    Reply
  6. HolodZar

    Добрый день.

    Попробовал, работает. Но при выходе из 1С вылетает Unknown Software Exeption. Возможно ли это как-то побороть?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *