Готовый сервер xml-rpc для 1С средствами python
Интеграция - Внешние источники данных
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Готовый сервер 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.
Вступайте в нашу телеграмм-группу Инфостарт