gifts2017

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

Опубликовал Дмитрий Дрейцер (MadDAD) в раздел Администрирование - Системное

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

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

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

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

Наименование Файл Версия Размер
1С_Jabber 69
.ert 99,00Kb
31.03.10
69
.ert 99,00Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. steban (steban) 06.04.10 15:59
В приницпе v7CLR является бесплатной альтернативой Elisy .Net Bridge

Это не совсем так: v7CLR не работает в 8-ке
2. Дмитрий Дрейцер (MadDAD) 07.04.10 05:32
(1) Этого не знал. Но я специализируюсь на v7, и мне ее вполне хватает.
3. ruffnekk ruffnekk (ruffnekk) 28.07.11 13:34
а исходники можно посмотреть?
4. Дмитрий Дрейцер (MadDAD) 20.06.12 03:04
(3) ruffnekk, обработка не закрыта паролем. Если вы про исходники v7CLR - то автор ее не я.
5. Дмитрий Дрейцер (MadDAD) 20.03.15 15:15
(3) ruffnekk, отнекропостю...
Исходники компоненты таки есть тут - https://code.google.com/p/v7clr/
6. Холод Заринск (HolodZar) 17.02.16 14:50
Добрый день.
Попробовал, работает. Но при выходе из 1С вылетает Unknown Software Exeption. Возможно ли это как-то побороть?