![]() |
![]() |
![]() |
|
Вопрос про ЗапуститьПриложение на сервере arsik, LLeonidov, СеньорПрограммист, craxx, vsy, Группа неравнодушных, Климов Сергей, Tarlich, Garykom, Hawk_1c, Kongo2019, Chai Nic, Terrixus, orakool, Мультук, Fish, Вадим33, sikuda, Timon1405, igouranga, Has, Lama12, ЕRPe, nick86, Fedor-1971, formista2000, MWWRuza, okmail, VladZ, maxab72, Eugene555, mmg, obs191, vbus, Builder, abfm, Гость из Мариуполя, vladmenleo, reg0303, ldo6, Гипервизор, A_G
| ☑ | ||
---|---|---|---|---|
0
Азат
30.06.25
✎
11:31
|
Всем доброго!
Пытаюсь выполнить скрипт python на сервере 1С (8.3.27). Для этого запускаю команду вида "C:\Program files\Python313\python.exe C:\Folder\my_file.py" Почему-то скрипт не отрабатывает, Return code = 1 Если в RDP открываю командную строку и выполняю этот код, то все отрабатывает норм Служба сервера 1С работает под Local system account. права на все файлы есть. Подскажите, куда можно копать? |
|||
1
Волшебник
30.06.25
✎
11:33
|
может добавить кавычек?
ЗапуститьПриложение("""C:\Program files\Python313\python.exe"" C:\Folder\my_file.py"); |
|||
2
Азат
30.06.25
✎
12:12
|
(1) к сожалению, не взлетело, как и с Progra~1
|
|||
3
Garykom
гуру
30.06.25
✎
12:41
|
(0) 1. Копать в сторону bat/cmd и запуска его из 1C
2. Использовать не ЗапуститьПриложение а КомандаСистемы bat/cmd можно программно создавать в темп |
|||
4
Kongo2019
30.06.25
✎
14:11
|
(0)Справку читал?
При запуске "1С:Предприятия" в пакетном режиме, а также при вызове метода на сервере будет сгенерировано исключение. |
|||
5
Garykom
гуру
30.06.25
✎
14:21
|
(4) Кстати это пример странного в 1С
Почему на сервере исключение но сама процедура доступна на сервере? Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер. |
|||
6
arsik
гуру
30.06.25
✎
14:25
|
(0) А не проще http сервис на том же питоне развернуть? Я бы так сделал.
|
|||
7
Garykom
гуру
30.06.25
✎
14:27
|
(6) ух ты а питон научился сам без веб-сервера запросы принимать?
|
|||
8
Kongo2019
30.06.25
✎
14:27
|
(6) Мы так дойдем до сервера API на Node.js
|
|||
9
arsik
гуру
30.06.25
✎
14:30
|
(6) Так вебсервер на самом питоне наваять можно, еще и скомпилировать в исполнительный, но я не про такой вариант.
Я про тот вариант, что на апаче + питон. Вебсервер скорее всего где то развернут, хоть для той же 1С. |
|||
10
Garykom
гуру
30.06.25
✎
14:30
|
(8) одно время я думал что нода это почти серебряная пуля
но потом сильно разочаровался, закостылили все js скриптокодеры в либах |
|||
11
Garykom
гуру
30.06.25
✎
14:32
|
(9) лично я думаю что питон там нафиг не нужен на сервере
можно или на 1С сразу сделать нужное или использовать нечто иное ЗЫ Сейчас питон это как бейсик раньше Чем то напоминает вызов из 1С скриптов на бейсике |
|||
12
Kongo2019
30.06.25
✎
14:32
|
(9) Так если есть веб сервер на 1С, то нафиг нам тот Питон?
|
|||
13
Garykom
гуру
30.06.25
✎
14:33
|
(12) он подразумевал вызов микросервиса вместо запуска консольной проги
|
|||
14
arsik
гуру
30.06.25
✎
14:33
|
(11) На питоне сейчас много всяких парсеров, скорее оттуда ноги растут. На 1С парсер сложно реализовать.
|
|||
15
Мультук
гуру
30.06.25
✎
14:33
|
1) Не понимаю зачем питон сразу не поселили в
C:\Python313\python.exe 2) А есть ли у Local system account права на запуск python.exe ? 3) ЗапуститьПриложение чудно конвертит pdf в jpg на сервере через ImageMagic КодВозврата = 0; ЗапуститьПриложение(СтрокаВыполнить, ПутьКФайлам, Истина, КодВозврата); P.S. Когда прозвучит волшебное "Напишите уже сервис на Go" ? :-) |
|||
16
Kongo2019
30.06.25
✎
14:33
|
(11) Ну не скажи, я с ним всякие извращения в экселе делаю например. 1С так с экселем работать не может.
|
|||
17
Garykom
гуру
30.06.25
✎
14:35
|
(16) в смысле не может?
ты через COM/OLE с экселем или через либу? в курсе что либ дофига есть и не только под питон на питоне чаще всего обертки |
|||
18
Fish
гуру
30.06.25
✎
14:36
|
(16) "1С так с экселем работать не может." - В 1С дофига платформенных методов работы с xml, который в экселе лежит.
|
|||
19
rozer76
30.06.25
✎
14:42
|
||||
20
Kongo2019
30.06.25
✎
14:44
|
(17) Через либу конечно. Я в курсе что их дофига. Но на Питоне тама самое простое получается. Я обычно openpyxl пользую
|
|||
21
Kongo2019
30.06.25
✎
14:46
|
(18) Дык это надо распаковать, найти, наваять, запаковать обратно.
Так и получится что я свою либу напишу, нафиг если уже готовые есть. |
|||
22
b_ru
30.06.25
✎
15:41
|
Предположу, что какой-то пакет у Local system не установлен. По-правильному такие вещи надо с venv запускать
|
|||
23
Азат
30.06.25
✎
15:51
|
(3) пробовал, не полетело. в темп папку складывал .py, .bat и запускал.
от юзера все работает, от SYSTEM нет |
|||
24
sikuda
01.07.25
✎
09:28
|
(20) Прямо чердачок справа сверху🔥
Я не понимаю тех людей, которые это лепят. Если у Вас система на 1С, используйте платформу (чтение в табличный документ) или наработки БСП или инфостарт. Если Python, то уж научитесь уж запускать Django или подобное и прикрутите туда свой openpyxl (Кстати многие хостеры уже предлагаю Python. Сам развлекаюсь http://django.t9163188.beget.tech/catalogs/ ну и сделаем кнопку сохранения в Excel ) Зачем совместный огород ваять? Вы ненавидите тех людей, которым будете это передавать в случае ухода?
|
|||
25
Fedor-1971
30.06.25
✎
16:07
|
(23) Если есть возможность - перенастрой запуск сервиса 1С предприятия от доменного пользователя. (Не факт, что поможет, но попробуй)
Ещё, возможно, нужно проверить настройки DEP - типа система защищается от непонятных скриптов |
|||
26
Garykom
гуру
30.06.25
✎
16:12
|
(23) runas /netonly /user:administrator "start.bat " < pass.txt
|
|||
27
Kongo2019
30.06.25
✎
16:13
|
(24) А с чего решил все что у меня все в куче?
1С своим занимается, Питон своим, Нода АПИ держит. Все четко и просто. |
|||
28
arsik
гуру
30.06.25
✎
16:14
|
(27) Нода для питона? Не жирновато? Она жрет как не в себя.
|
|||
29
Kongo2019
30.06.25
✎
16:18
|
(28) Зато просто. Железо щас дешевое.
|
|||
30
Fedor-1971
30.06.25
✎
16:22
|
(26) Спросит пароль администратора, а вводить его некому
С таким раскладом, проще шедулер настроить на запуск скрипта раз в Сколько-то минут (и пользователя можно указать и пароля в открытом доступе нет) |
|||
31
Garykom
гуру
30.06.25
✎
16:35
|
(30) хе pass.txt записать тоже из 1С
|
|||
32
Timon1405
30.06.25
✎
16:36
|
(0) странный хардкод, храните скрипты в обработке
Скрипт = ЭтотОбъект.ПолучитьМакет(ИмяСкрипта); ИмяВременногоФайла = ПолучитьИмяВременногоФайла(".py"); Скрипт.Записать(ИмяВременногоФайла); ЗапуститьПриложение("python.exe " + ИмяВременногоФайла + " " + "аргументы скрипта"); УдалитьФайлы(ИмяВременногоФайла); |
|||
33
Азат
30.06.25
✎
17:14
|
(32) это один фиг запускать на сервере придется
|
|||
34
Timon1405
30.06.25
✎
17:24
|
(33) смысл что ПолучитьИмяВременногоФайла гарантировано создаст файл в директории доступной текущему пользователю, а не c\Folder наши админы бы за такое канделябром дали.
|
|||
35
Азат
30.06.25
✎
19:00
|
(34) пробовал так тоже. не полетело
|
|||
36
Сеньор Программист
30.06.25
✎
20:12
|
https://disk.yandex.ru/d/d-7nCwr8FvTNzg
Смотри папку ПРИМЕРЫ ВНЕШНИХ ОБРАБОТОК Обработка "Внешний анализ.epf" Там функции с именами ЗапуститьПриложениеPythonНаСервере.....() Используют ЗапуститьПрограмму() (Из типовой УТ) Добавка В демо версии есть папка со скриптом как установить библиотеки для Питон, чтобы он хватался и на сервере и на клиенте. Возможно дело в этом. В процессе установки Питона галки надо поставить по другому если не прокатило Ничего другого кроме типового Питона не ставить (всякие добавки к Питону могли себя прописать в качестве среды исполнения скрипта) Еще как вариант разные языки (русский / английский) под именем клиента и под именем сервера Тогда в скрипте надо четко указать язык перед текстовыми строками r"Текстовая строка" |
|||
37
LLeonidov
01.07.25
✎
14:26
|
(7) Да, можно на раз два в пару строчек поднять свой http сервис, на раз два получать события и обрабатывать, вот с веб сокет сервером чуть-чуть сложней.
Я ради развлечения поднимал в несколько потоков, хттп сервис слушает запросы, передает их выше, если надо ждет ответ от другого потока, отвечает в 1с. Работает хлеба не просит) В прод не ушло. |
|||
38
Garykom
гуру
01.07.25
✎
15:07
|
(37) с многопоточностью?
с любыми методами HTTP не только GET/POST? httpS (ssl) и сертификаты? методы авторизации кроме basic? |
|||
39
arsik
гуру
01.07.25
✎
15:09
|
(38) Ну прям словарь какой то для айти. Осмысленное что-то будет?
|
|||
40
Garykom
гуру
01.07.25
✎
15:22
|
(39) Классический 1Сник?
|
|||
41
arsik
гуру
01.07.25
✎
15:25
|
(40) Нет, но связей между словами не вижу.
|
|||
42
Garykom
гуру
01.07.25
✎
15:28
|
(41) Связь прямая
В Питоне модуль http.server Warning http.server is not recommended for production. It only implements basic security checks. |
|||
44
LLeonidov
01.07.25
✎
19:33
|
(42) ну раз модуль пишет то вам точно нельзя ни какие другие протоколы авторизации поддерживать.
В целом если бы я все же запустил тот проект на питоне я бы добавил шифрование тела запроса. Ключ на сессию я в 0 реализации выдавал. Но, если вы вдруг намекаете про то что 1с наше все, вы правы! Использовать питон нужно только после того как все варианты с 1с использованы. Но иногда приятно, что можно перевернуть пдфы, выбрать для каждого пдфа свой принтер, активировать формулы в экселе, двигать окна... ну и так по мелочи. На все это есть другие решения. |
|||
45
Garykom
гуру
01.07.25
✎
22:50
|
(44) Я как бы за микросервисы на Го :)
Из 1С их намного лучше и удобней использовать Поставить питон с окружением не на любой сервак дадут А вот сохранить .exe из двоичного макета в темп и запустить - еще не видел проблемы |
|||
46
Garykom
гуру
01.07.25
✎
22:55
|
(45)+ Да и сам питон (имхо) хрень редкостная
Не спорю что он популярен и может легко решать многие типичные задачки, которые не может 1С сама Но если начинаются проблемы - хрена с два разберешься с полпинка Хуже только нода когда ад зависимостей (модулей/пакетов) начинается, разных устаревших и несовместимых |
|||
47
LLeonidov
02.07.25
✎
11:56
|
(46) Когда начинаются проблемы в любой сфере, если разбираешься с полпинка, то это не проблемы!
Сервисы на гоу это круто. Но не везде можно юзать стек, а жаль. Отдельная грусть когда у тебя ретроградные админы в компании. Питон особенный, как и 1с... Но местами остальным языкам до него как до луны! От сообщества питона я отдельно пищу, человек задает глупый вопрос, ему мягко говорят что так не делают, а потом сразу показывают как сделать неправильно, правильно и кидают ссылку на еще один вариант. Без 100 сообщений, где тебе говорят что ты тупой. Вот этот вот язык для тупых и наивных, почти как 1с. Недавно ковырял редаш в связке с кликхаусом. Ну все хорошо, в запросах можно один раз объявить формулу и использовать ее везде, быстро, просто, миллионы строчек запись, за пару секунд и это по хттп... Красивые диаграмки, таблички,... Можно выгрузить из BI в эксель! Но,... добавить так легко и нативно фильтр на таблицу, нельзя, вот эта вся мощь отбора на список от 1с из нулевых до сих пор не дефолт. Как они там живут без подобного, я не знаю. |
|||
48
Garykom
гуру
02.07.25
✎
12:47
|
(47) А зачем админам об этом знать?
С питоном есть засады как были с переходом с версии 2.7 на 3 И в будущем будет такое же, ты никак не проконтролируешь какая версия питона с какими модулями на сервере стоит В отличие от собранного бинарника, который можно собрать на своем компе/сервере и просто закинуть в макет 1С Я обычно бинарники под разные ОС вместе с исходниками на Go сохраняю в макеты, в будущем если что не проблема исправить и пересобрать |
|||
49
Kongo2019
02.07.25
✎
12:52
|
(48) А вот тут поподробнее пожалуйста.
|
|||
50
Garykom
гуру
02.07.25
✎
12:58
|
(49) Что именно подробнее?
|
|||
51
vladmenleo
02.07.25
✎
12:59
|
(0) А что сам скрипт-то делает? Если куда-нибудь по сети пытается что-то записать, то из-под Local system account не взлетит
|
|||
52
Kongo2019
02.07.25
✎
13:00
|
(50) Я обычно бинарники под разные ОС вместе с исходниками на Go сохраняю в макеты, в будущем если что не проблема исправить и пересобрать
|
|||
53
Garykom
гуру
02.07.25
✎
13:02
|
Если про бинарники на Go, так для 1С это ничем не отличается от использования разных ВК
Которые тоже по сути бинарники, на C++ или еще чем написанные Нынче уже можно на Go писать ВК для 1С по стандарту NativeAPI, но нет смысла Прекрасно можно использовать или запуск консольного с параметрами Или запуск/поднятие микросервиса c общением с ним через http, как ненужен - гасим микросервис предусмотрев в нем команду для этого |
|||
54
Garykom
гуру
02.07.25
✎
13:08
|
(52) Ну да
Дык просто макет двоичные данные делаешь На скрине внутри первого бинарник (exe под винду, под линукс и прочие не требовалось) Внутри второго исходник на Go Далее банально когда надо макет во временный файл и запускаю из 1С&НаСервере Функция РаспознатьQRИзКартинкиНаСервере(ИмяФайлаКартинки) ИмяВременногоКаталога = ПолучитьИмяВременногоФайла(); Попытка СоздатьКаталог(ИмяВременногоКаталога); Исключение КонецПопытки; ОбработкаОбъект = РеквизитФормыВЗначение("Объект"); ДвоичныеДанные = ОбработкаОбъект.ПолучитьМакет("gozxing"); ИмяФайлаПриложения = ИмяВременногоКаталога + "\gozxing.exe"; Попытка ДвоичныеДанные.Записать(ИмяФайлаПриложения); Исключение КонецПопытки; ИмяФайлаШтрихкода = ПолучитьИмяВременногоФайла("txt"); ШаблонКоманды = "%1 %2 %3"; СтрокаКоманды = СтрШаблон(ШаблонКоманды, ИмяФайлаПриложения, ИмяФайлаКартинки, ИмяФайлаШтрихкода); ТекущийКаталог = ИмяВременногоКаталога; ДождатьсяЗавершения = Истина; КодВозврата = ""; Попытка ЗапуститьПриложение(СтрокаКоманды, ТекущийКаталог, ДождатьсяЗавершения, КодВозврата); Исключение КонецПопытки; ЧтениеТекста = Новый ЧтениеТекста(ИмяФайлаШтрихкода, КодировкаТекста.UTF8); Штрихкод = СокрЛП(ЧтениеТекста.Прочитать()); ЧтениеТекста.Закрыть(); ЧтениеТекста = Неопределено; Попытка УдалитьФайлы(ИмяФайлаКартинки); Исключение КонецПопытки; Попытка УдалитьФайлы(ИмяФайлаПриложения); Исключение КонецПопытки; Попытка УдалитьФайлы(ИмяВременногоКаталога); Исключение КонецПопытки; Попытка УдалитьФайлы(ИмяФайлаШтрихкода); Исключение КонецПопытки; Возврат Штрихкод; КонецФункции
|
|||
55
Kongo2019
02.07.25
✎
13:11
|
(54) А блин. Два макета. Я подумал ты исходник хранишь и бинарник из него собираешь.
Хорошая идея, хранить и исходник и бинарник. |
|||
56
Garykom
гуру
02.07.25
✎
13:11
|
(54)+ внутри gozxing_source банальный zip архив с исходниками на Go
|
|||
57
Garykom
гуру
02.07.25
✎
13:11
|
(55) Можно и в одном архиве все
И доставать из него |
|||
58
Garykom
гуру
02.07.25
✎
13:16
|
(55) Собирать кстати тоже можно, есть golang-portable
Но нет смысла, великоват он |
|||
59
Сеньор Программист
02.07.25
✎
13:40
|
Питон хорош тем, что может писать сам себя.
|
|||
60
Kongo2019
02.07.25
✎
13:56
|
golang хорош для API. Для скриптов чето не зашел.
|
|||
61
Garykom
гуру
02.07.25
✎
14:02
|
(60) для скриптов попробуй PowerShell
он давно и кроссплатформенный под linux тоже https://github.com/PowerShell/PowerShell |
|||
62
arsik
гуру
02.07.25
✎
14:34
|
(61) Тогда уж лучше 1с исполнитель
|
|||
63
Garykom
гуру
02.07.25
✎
14:38
|
(62) Вот уж гадость неимоверная
OneScript и то лучше но его тоже ставить надо А PS он под виндой из коробки, да и под линукс уже многие используют админы |
|||
64
arsik
гуру
02.07.25
✎
14:40
|
(63) Да с чего? То что кому то непривычно - так это одно. Мне нравиться.
|
|||
65
VladZ
02.07.25
✎
14:47
|
(0) Яйцо в утке, утка в зайце, заяц в шоке...
|
|||
66
Garykom
гуру
02.07.25
✎
14:48
|
(64) В чем преимущества этого Исполнителя?
Ладно хотя бы OneScript там язык такой же как в самой платформе 1С Что можно (или легко) сделать на Исполнителе но нельзя (или сложно) на PS? |
|||
67
arsik
гуру
02.07.25
✎
16:39
|
(66) Я же в (64) указал - мне нравится. И нравится больше чем PS, OneScript.
|
|||
68
Garykom
гуру
02.07.25
✎
17:14
|
(67) Вот и спрашиваю чем (почему) нравится то?
Вкусом или цветом? |
|||
69
LLeonidov
02.07.25
✎
19:11
|
(54) я с питоном так же делаю. Ни каких тебе там зависимостей, все упаковано в один экзешник.
Но хранение исходника рядом с экзешником топ идея, возьму на вооружение, пусть еще и в хранилище будет отсвечиваться. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |