#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, с глобальными функциями мне понравился вариант. А нету какой-нибудь ссылочки где можно подробнее почитать, как и где их писать?
#13
by Garykom
+ но лучше найдите и озадачьте 1С-ника, согласуйте с ним интерфейсы и все т.е. в таком стиле: 1. мне нужно создать документ ЧекККМ, заполнить его строками по переданным артикулам, провести его и пробить на принтер... сделай мне функцию СоздатьЧекККМ("массив артикулов") Экспорт;
#14
by _fvadim
недоумеваю от нежелания пользоваться поиском вот тут есть создание документа, на питоне
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Ошибка при переходе от v8.Appllication к v8.ComConnector
- v8 строка подключения V8.Connect
- Волшебнику и всем кто поможет по теме "v8 УРБД на v8 за четыре шага"
- v8: при v8 = Новый COMОбъект("V8.Application") дает ошибку ..
- v8: Не могу подключиться из V8 к V8
- v8: есть ли аналоги openconf для 1с v8
- v8: Как удалить 1С v8 ?
- COMОбъект("V8.COMConnector") в v8.1
В этой группе 1С
- Поднимаю posgres + 1c на линуксовом серваке
- v7: Formex Максимизировать()
- v8: Регистрация счетов-фактур на аванс, не работает кнопка "Заполнить", Бухгалтерия 2.0 КОРП
- Подбор в список значений в форме 8.3
- В какой момент блокируется таблица регистра сведений
- 1с ут 10.3 помогите , что происходит - Дата документа не соответствует текущей д
- Почему не обновляется справочник контрагентов в бухгалтерии при обмене м/у УТ-БУ
- Найти(Отчество,Символы.НПП), не находит пробела в Отчесте
- УПП. Оплата праздничных и выходных
- Квадрат с вершинами одного цвета
- СчетФактураПолученный.СоздатьДокументНаОсновании. Что не так?
- УТ11 Ответственное хранение
- Внешняя обработка. Безопасный режим при записи документа.
- НайтиПоСсылкам() , параметр ИсключитьОбъекты
- Как получить текущего пользователя ПриНачалеРаботыСистемы() 8.3
- Ошибка SDBL: Ожидается выражение (pos=18)
- Запрет проведения будущей датой УТ 11
- Нумерация Документов в 1с 77 ТиС
- УТ 10. Отчет Задолженность контрагентов по периодам.
- Расшифровка диаграммы Ганта 1С 8.3.4.482