Есть ли разница в апи V81.ComConnector и V82.ComConnector? #574749


#0 by Linkovich
Проблема заключается в следующем. Подключаюсь к базе 8.1 и к базе 8.2 из питона, использую идентичный код. С 8.1 работает, а с 8.2 - нет. Может кто сталкивался с особенностями работы V82.ComConnector. Фрагмент для 8.1: фрагмент для 8.2(ругается на строку c1DP.UpdateTab("000000001") и выдает ошибку 'NoneType' object is not callable): Буду признателен за любые советы и идеи...
#1 by izekia
а что такое датапроцессоры?
#2 by Amiralnar
c1DP в предпоследней строке чему равняется?
#3 by Amiralnar
Обработки
#4 by izekia
может там что-то во внешнем соединении не живет?
#5 by Linkovich
<COMObject <unknown>> как и в варианте V81
#6 by Amiralnar
Возможно, ошибка при выполнении кода в 1С.
#7 by Amiralnar
Если есть 1С, запусти, нажми "Сервис - Табло", напиши: DataProcessors.PythonAccess.Create - должна получиться переменная с типом ОбработкаОбъект.
#8 by Amiralnar
Потом надо писать обработку для запуска в 1С. Возможно, после конвертации в 8.2 код стал некорректным.
#9 by Amiralnar
А, по сути, в 8.2 апи не изменился. Цитирую: ОбработкаМенеджер.<Имя обработки>.Создать (DataProcessorManager.<Имя обработки>.Create) ОбработкаМенеджер.<Имя обработки> (DataProcessorManager.<Имя обработки>) Создать (Create) Синтаксис: Создать Возвращаемое значение: Тип: ОбработкаОбъект. Описание: Создает новый экземпляр обработки. Доступность: Сервер, толстый клиент, внешнее соединение. Пример: ОбработкаДокументов = Обработки.ОбработкаДокументов.Создать;
#10 by Linkovich
так и есть - ОбработкаОбъект.PythonAccess
#11 by Amiralnar
#12 by Linkovich
та же фигня... Попробовал обратиться к метаданным обработки - работает: вывел синоним обработки
#13 by Amiralnar
Не, что выводит DataProcessors.PythonAccess.Create.UpdateTab("000000001")? Должно быть значение, или ошибка исполнения. От синонимов проку мало. Ясно, что объект получен. Теперь не ясно - почему не апдейтит.
#14 by el-gamberro
c1DP.UpdateTab('000000001')
#15 by el-gamberro
А вообще ты из какой среды работаешь?
#16 by acsent
Обработка криво работает в режиме внешнего соединения для 8.2. Копай код 1С
#17 by Linkovich
код 1С(модуль обработки PythonAccess):
#18 by Amiralnar
Занавес.
#19 by Linkovich
Разобрался сам! Чтобы вопрос не повис в воздухе - опишу в чем была причина проблемы и как она решилась. На самом деле API v82.ComConnector отличается от v81.ComConnector. API v82.ComConnector более полный что ли, т.е. дает больше информации для обработчика COM-соединения. В моем случае, библиотека Python рассчитана на работу с менее умным COM-сервером чем в 8.2, поэтому в случаи 8.1 все прокатывало. v82.ComConnector дает больше информации об 1С-овских объектах(объекты конфигурации, их методы и функции и т.д.), что мешало питону правильно сгенерировать функцию обращения. Наверное это все-таки больше проблема питона. Вот теперь занавес.
#20 by izekia
проблема библиотеки скорее, а не питона ... но из формулировки вообще ничего непонятно, ты хочешь сказать, что для 8.1 какой-то из интерфейсов не до конца реализован? можно подробнее инфу?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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