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

А ещё можно совершить подвиг, достойный отлития в граните - показать код и сообщения об ошибках. Я понимаю, что прошу практически невозможного, но вдруг чудо случится?
2 elgureka
 
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
5 elgureka
 
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
Может написать на английском метод создания документа?
7 LoneBull
 
27.06.21
14:18
(0)
обМод - это не общий модуль случайно?
Если так - на нём галка "внешнее соединение" стоит?
8 elgureka
 
27.06.21
14:57
(7) да общий модуль, стоит
9 Вафель
 
27.06.21
15:01
Ошибок в жр 1с нет?
10 elgureka
 
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)
11 acht
 
27.06.21
15:20
(10) А типа

v83module = getattr(V83, u"обМод")
v83method = getattr(v83module, u"СоздатьДокумент1")
v83method(param)

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