Готовый сервер xml-rpc для 1С средствами python

Опубликовал Евгений Стоянов (quick) в раздел Обмен - Обмен с другими системами

Доступ к 1С посредством xml-rpc протокола из любого другого приложения.

Готовый сервер xml-rpc для 1С средствами python.
Принцип работы

1. Создаем классы 1С++ с названием rpc_name и методами с англ. именами с одним параметром param, пример:

function getInfo(param) export 
param.result = 0;
return param;
endfunction

2. Прописываем методы которые должны быть доступны удаленно в defcls.prm как открытые

function getInfo(param);

При запуске сервак определит эти методы и зарегистрирует их для удаленного вызова автоматически, о чем будет сообщено в консоле.

3. В файле конфигурации сервака settings.py прописываем строку запуска.

4. Запускаем v77xmlrpc_server.py (что бы небыло видно консоли можно задать расширение pyw), для остановки сервера stop_server.py

5. Дальше читаем google xmlrpclib.

Пример на стороне вызывающей методы программы (в моем случае веб-интерфейс)

import xmlrpclib
client = xmlrpclib.ServerProxy("http://192.168.16.1:888/") # "куда хотим подключиться?"
client.system.listMethods() # покажет все доступные методы на сервере
result = client.rpc_partner_GetMessages({"idpartner":"10"}) # получить список сообщений для партнера с id = 10
if result["result"] == 1: # если на стророне 1С все в порядке, то обработаем дальше полученный список
msg_list = result["table"]
else:
error = result["msg"]

Этот сервак используется и по сей день в комбинации с веб интерфейсом (ubuntu apache mod_python django). вызов методов менее 1сек при загрузке 10 пользователями. Дополнительно использую memcached, поэтому отклик моментальный :).

 Дополнительные ресурсы:
http://ru.wikipedia.org/wiki/XML-RPC
http://docs.python.org/library/xmlrpclib.html
http://1cpp.ru/

16.06.09
Выкладываю еще пример того как можно использовать вызовы удаленных процедур внутри 1С.
На практике этот код служит для получения информации по картам c сервака под ubuntu.

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

Наименование Файл Версия Размер
xml-rpc.zip
.1244037451 7,59Kb
15.05.13
119
.1244037451 7,59Kb 119 Скачать
Пример COM объекта на python
.1245153316 2,34Kb
15.05.13
33
.1245153316 2,34Kb 33 Скачать
Вызов COM (python) объекта в 1С
.1245153343 34,00Kb
15.05.13
35
.1245153343 34,00Kb 35 Скачать
Класс для создаия демона под linux на python
.1245153711 3,57Kb
15.05.13
25
.1245153711 3,57Kb 25 Скачать
Серверная часть из примера с СОМ
.1245153746 1,37Kb
15.05.13
28
.1245153746 1,37Kb 28 Скачать
Сам сервер для примера
.1245153772 2,55Kb
15.05.13
30
.1245153772 2,55Kb 30 Скачать
Графический интерфейс на питоне для вызова функции сканирования
.1245153850 0,99Kb
15.05.13
32
.1245153850 0,99Kb 32 Скачать

См. также

Добавить вознаграждение
Комментарии
1. Александр Орефков (orefkov) 1433 10.06.09 08:54 Сейчас в теме
Я конечно незнаю что такое xmlrpc, однако же питон, 1С++, классы - однозначно плюсую.
2. Ёпрст (Ёпрст) 1012 10.06.09 09:03 Сейчас в теме
Неплохо бы еще и мини-пример присоплить...
3. Леонид Стасюков (stilet) 49 10.06.09 09:34 Сейчас в теме
А к 8ке можно прикрутить? И можно поподробнее?
4. Евгений Стоянов (quick) 557 16.06.09 16:37 Сейчас в теме
Добавил немного новых примеров + скрины.
5. Вадим (Вадимыч) 05.07.09 15:17 Сейчас в теме
6. Vitaliy Baytaluk (flamps) 11.12.09 15:19 Сейчас в теме
у меня не запускается сервер
7. xzxzxz xzxzxz (xzxzxz) 25.09.12 15:18 Сейчас в теме
Спасибо тебе, добрый человек, за такую качественную халяву, что редко встретишь в мире 1С :)
8. Евгений Стоянов (quick) 557 05.02.14 14:21 Сейчас в теме
(6) flamps, тестировал только на версии питона 2.7. Возможно что на 3.0 не взлетит