gifts2017

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

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Александр Орефков (orefkov) 10.06.09 08:54
Я конечно незнаю что такое xmlrpc, однако же питон, 1С++, классы - однозначно плюсую.
2. Епрст (Ёпрст) 10.06.09 09:03
Неплохо бы еще и мини-пример присоплить...
3. Леонид Стасюков (stilet) 10.06.09 09:34
А к 8ке можно прикрутить? И можно поподробнее?
4. Евгений Стоянов (quick) 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) 05.02.14 14:21
(6) flamps, тестировал только на версии питона 2.7. Возможно что на 3.0 не взлетит
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа