Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

1C Python Запуск процедуры

1C Python Запуск процедуры
Я
   elgureka
 
27.06.21 - 13:22
Доброе время суток,
1С 8.3, Общий не глобальный модуль(Внешнее соединение - истина), имеется процедура (Экспортная) СоздатьДокумент1()
создал python скрипт - который соединяется посредством Внешнего соединения (соединение работает - могу получить список документов, выполнить Запрос);
Не могу запустить процедуру СоздатьДокумент1(), через python скрипт. Как это сделать?
   ДенисЧ
 
1 - 27.06.21 - 13:25
Надо как-то себя заставить...

А ещё можно совершить подвиг, достойный отлития в граните - показать код и сообщения об ошибках. Я понимаю, что прошу практически невозможного, но вдруг чудо случится?
   elgureka
 
2 - 27.06.21 - 13:35
(1)
import pythoncom
import win32com.client
V83_CONN_STRING = 'File="T:\\poom\\doom\\";Usr="1";Pwd="1";'
pythoncom.CoInitialize()
V83 = win32com.client.Dispatch("V83.COMConnector").Connect(V83_CONN_STRING)

#V83.обМод.СоздатьДокумент1() это не рабоатет


Ошибка: именно в этом случае "None type object is not callable"

PS возможно мне стоит изменить сам вопрос на "Поделитесь пжста 2 строками кода на pythone - по запуску функции или процедуры в базе 1с- если Вы уже так ДЕЛАЛИ и это работает"
   ДенисЧ
 
3 - 27.06.21 - 13:42
print V83 что говорит?
Если оно тебе говорит "None type object" - то ты не поимел соединения.
   ДенисЧ
 
4 - 27.06.21 - 13:42
TypeError: 'nonetype' object is not callable” occurs when you try to call a None value as if it were a function. To solve it, make sure that you do not override the names of any functions with a None value
   elgureka
 
5 - 27.06.21 - 13:55
(3) соединение имеется, для примера код:

code1 = getattr(V83.Catalogs, u"Справочник1").Select()
while code1.next():
    print(code1.code)

выдает полученные значения

1
2
... и т.д.
   СеньорПрограммист
 
6 - 27.06.21 - 14:15
Может написать на английском метод создания документа?
   LoneBull
 
7 - 27.06.21 - 14:18
(0)
обМод - это не общий модуль случайно?
Если так - на нём галка "внешнее соединение" стоит?
   elgureka
 
8 - 27.06.21 - 14:57
(7) да общий модуль, стоит
   Вафель
 
9 - 27.06.21 - 15:01
Ошибок в жр 1с нет?
   elgureka
 
10 - 27.06.21 - 15:02
(7) Спасибо СеньорПрограммист получилось - действительно дело в в использовании кириллицы

привожу рабочий код

import pythoncom
import win32com.client
V83_CONN_STRING = 'File="ТОМ\\ПАПАКА\\";Usr="ПОЛЬЗОВАТЕЛЬ";Pwd="ПАРОЛЬ";'
pythoncom.CoInitialize()
V83 = win32com.client.Dispatch("V83.COMConnector").Connect(V83_CONN_STRING)
V83.OBSHMODUL.procedure(param)
   acht
 
11 - 27.06.21 - 15:20
(10) А типа
v83module = getattr(V83, u"обМод")
v83method = getattr(v83module, u"СоздатьДокумент1")
v83method(param)

В питоне не?
   elgureka
 
12 - 27.06.21 - 15:34
(11)
именно так при использовании кириллицы не работает (v83method -  'nonetype' object is not callable) - если на  латинице все опять таки работает.
   Вафель
 
13 - 27.06.21 - 15:36
Кодировка другая как пить дать
   Вафель
 
14 - 27.06.21 - 15:46
   Asmody
 
15 - 27.06.21 - 16:22
(14) статья отличный пример дичайшей некомпетентности "настоящего программиста аж на целом python".
   Asmody
 
16 - 27.06.21 - 16:28
Надо же - там есть мой комментарий! Сейчас я, конечно, отправил бы автора курить http-сервисы, а не заниматься скрещиванием ужа с ежом через телефонную розетку.
   craxx
 
17 - 27.06.21 - 18:27
(15) в 2012 кажись не было еще http-сервисов.

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.