1С v8.COMConnector где найти документацию #716271


#0 by StopKran
Добрый день! По роду деятельности я java и python developer, об 1с не знаю практически ничего. И вот в нашей фирме меня попросили сделать интеграцию с 1с одной софтинки. Благо интеграция казалось бы не большая, всё что требуется - создать новый чек, и распечатать его на фискальном регистраторе подключённом к 1с. Кроме того есть внешняя обработка на 1с которая по сути это и делает. В качестве коннектора к 1с был выбран com интерфейс. Из питона я уже научился связываться с 1с-кой и казалось бы всё хорошо, но на этом всё и заступорилось. Есть достаточно большое число примеров с запросами на чтение из 1с, но мне они не нужны. Подскажите пожалуйста как с помощью COMConnector'a выполнить код внутри 1с. Например я хочу выполнить строчку: 'НовЧек = Документы.ЧекККМ.СоздатьДокумент;', как это сделать - я не понимаю. И самое главное подскажите где вообще можно найти документацию и описание всех методов COMConnector'а. Заранее спасибо.
#1 by ptiz
Посмотри внешнюю обработку, как там это сделано. Потом надо прикинуть - будет ли это работать через COM-соединение (а это не обязательно так).
#2 by Chai Nic
Да всё там элементарно. Главное, не забывать, что нельзя напрямую обмениваться с COM агрегатными объектами, а можно только данными элементарных типов - строка, дата, число. ...
#3 by StopKran
Chai Nic, казалось бы да, элементарно. Но вот соответственно как у меня в питоне это выглядит: #coding=cp1251 на что в итоге у меня вылезает ошибка: Traceback (most recent call last):   File "C:Python33libsite-packageswin32comclientdynamic.py", line 511, in __getattr__     ret = self._oleobj_.Invoke(retEntry.dispid,0,invoke_type,1) pywintypes.com_error: (-2147352573, 'Член группы не найден.', None, None) During handling of the above exception, another exception occurred: Traceback (most recent call last):   File "C:Python33libsite-packageswin32comclientdynamic.py", line 322, in _make_method_         ^ SyntaxError: invalid syntax Traceback (most recent call last): TypeError: 'NoneType' object is not callable И чего вот с этим делать я не понимаю. А в идеале бы мне сделать нечто вроде как делают: только что бы это был не запрос начинающийся с "Выбрать", а просто код 1с. Я бы туда из внешней обработки вставил чуток подредактированный код и будет хорошо. Можно как-нибудь так сделать?
#4 by Garykom
да "вы батенька извращенец" не страдайте фигней напишите в 1С глобальные функции и процедуры которые делают все что надо и просто из питона через  com (или еще как, например фоновое задание в 1с крутиться и что то слушает) вызывайте их... т.е. не надо весь код писать в питоне, в нем сделайте только вызовы кода внутри конфигурации 1С
#5 by Garykom
+ часто еще проще делают запускают с определенным пользователем 1С и оно при старте к примеру читает некий файлик команд и выполняет их.. некий робот получается ))
#6 by Господин ПЖ
а лучше web-сервис... ком при обновление платформы и смене винды 32->64 bit это гимор
#7 by Garykom
дык а поддержка штанов откуда возьмется если оно работать без сбоев будет при разных обновлениях ))
#8 by SSSSS_AAAAA
" где вообще можно найти документацию и описание всех методов COMConnector'а."А у него только один метод  - Connect :) Все остальное к нему не относится.
#9 by Chai Nic
К сожалению, метод Выполнить, позволяющий выполнить произвольный код в глобальном контексте, для COM-соединения не поддерживается( Так что "универсальный исполнитель" не взлетит. Ну а произвольные запросы выполнять вполне можно, и передавать их результаты.
#10 by _fvadim
кстати, да. всё остальное код на 1с. чёт не понятно на чём валится. и к чему относится print(newCheck) вот я на vbs эксперементировал:
#11 by StopKran
Garykom, с глобальными функциями мне понравился вариант. А нету какой-нибудь ссылочки где можно подробнее почитать, как и где их писать?
#12 by Garykom
))
#13 by Garykom
+ но лучше найдите и озадачьте 1С-ника, согласуйте с ним интерфейсы и все т.е. в таком стиле: 1. мне нужно создать документ ЧекККМ, заполнить его строками по переданным артикулам, провести его и пробить на принтер... сделай мне функцию СоздатьЧекККМ("массив артикулов") Экспорт;
#14 by _fvadim
недоумеваю от нежелания пользоваться поиском вот тут есть создание документа, на питоне
#15 by zippygrill
А что нельзя сразу в питоне обратится к ФР и дать ему команду "printcheck" ?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С