Имя: Пароль:
1C
 
выполнить приложения на сервере
0 vde69
 
04.09.17
16:09
сначало пытался сделать так

СтрокаЗапуска = "gpg2 --batch --output " + ИмяФайлаGPG + " --recipient " + эл.Параметр + " --encrypt " + ИмяФайлаИсточника;
ЗапуститьПриложение(СтрокаЗапуска, ФайлИсточникНаДиске.Путь, Истина);

при этом 1с зависает на неопределенный период, если я беру строку запуска, захожу на сервер под именем пользователя службы - строка отрабатывает....


подскажите куда копать?
1 RS2017
 
04.09.17
16:13
права?
2 RS2017
 
04.09.17
16:14
а не.., пользователь тот же
3 RS2017
 
04.09.17
16:16
может приложению клиентская сессия нужна, попробуй эту строку в виндовый шедулер засунуть. Там отработает?
4 lubitelxml
 
04.09.17
16:16
пробовал через КомандаСистемы()?
5 Fedor-1971
 
04.09.17
16:18
(0) cmd /C "твоя строка" - запусти шелл и в нём свою команду
(3) начиная с W2K3 шелл для строки шедулера запускается автоматически
6 vde69
 
модератор
04.09.17
16:21
(4) на сервере не доступна...

(5) не зависает, но и не работает (файл не создается)
7 mistеr
 
04.09.17
16:21
(0) Команду оберни в батник и добавь логирование всего и вся
8 Fedor-1971
 
04.09.17
16:25
(6) Оберни в дополнительные """"+ твоя команда +"""" пробелы сбивают CMD

(7) ещё более универсальный вариант чем CMD,и под Линуксом будет работать
9 vde69
 
модератор
04.09.17
16:32
(8) посмотрел - пробелов нет, на всякий случай обернул имена файлов кавычками

эффекта нет...
10 Господин ПЖ
 
04.09.17
16:34
позырить в Process Monitor чего не хватает
11 Вафель
 
04.09.17
16:34
следай >> C:\log.txt
12 Fedor-1971
 
04.09.17
16:39
(9) не имена файлов, а всю команду в ней есть пробелы перед параметрами, а CMD /С плохо дружит с параметрами того что нужно запустить, всё что через пробел она воспринимает как её параметр
13 vde69
 
модератор
04.09.17
16:45
(11) странно но файл вообще не создался....

а если интерактивно - создается
14 vde69
 
04.09.17
16:48
(13)+ вот строка

gpg2 --batch --output "C:\Users\1c_admin\AppData\Local\Temp\v8_E1B0_47.gpg" --recipient "[email protected]" --encrypt "C:\Users\1c_admin\AppData\Local\Temp\v8_E1B0_46.xls" >>d:\distrib\1.txt
15 Fedor-1971
 
04.09.17
17:05
(14) вот так пробуй:
"gpg2 --batch --output C:\Users\1c_admin\AppData\Local\Temp\v8_E1B0_47.gpg --recipient [email protected] --encrypt  C:\Users\1c_admin\AppData\Local\Temp\v8_E1B0_46.xls  >>d:\distrib\1.txt"

или так:
"gpg2 --batch --output C:\Users\1c_admin\AppData\Local\Temp\v8_E1B0_47.gpg --recipient [email protected] --encrypt  C:\Users\1c_admin\AppData\Local\Temp\v8_E1B0_46.xls " >>d:\distrib\1.txt - тут похуже будет, в файл может полететь только запуск CMD, а не вывод на консоль от команды

gpg2 - com или exe (то же неплохо бы указать)
16 Fedor-1971
 
04.09.17
17:11
15+ можно попробовать так:
делаем, например, C:\Cript.bat
внутри:
gpg2 --batch --output %1 --recipient %2 --encrypt  %3  >>d:\distrib\1.txt

строка запуска "CMD /C "C:\Cript.bat C:\Users\1c_admin\AppData\Local\Temp\v8_E1B0_47.gpg [email protected] C:\Users\1c_admin\AppData\Local\Temp\v8_E1B0_46.xls"
17 Fedor-1971
 
04.09.17
17:12
лопухнулся лишнюю " поставил:
CMD /C "C:\Cript.bat C:\Users\1c_admin\AppData\Local\Temp\v8_E1B0_47.gpg [email protected] C:\Users\1c_admin\AppData\Local\Temp\v8_E1B0_46.xls"
18 Fedor-1971
 
04.09.17
17:16
и да 1.txt файлик создаствся только если что-то выводится на консоль
Возможно нужно будет убрать пробелы тут: %3  >>d:\distrib\1.txt
19 vde69
 
04.09.17
17:17
>>>>gpg2 - com или exe (то же неплохо бы указать)


СПАСИБО!!!! указал полный путь и заработало... видимо переменные среды не работают для службы...

СтрокаЗапуска = """C:\Program Files (x86)\GNU\GnuPG\gpg2.exe"" --batch --output " + ИмяФайлаGPG + " --recipient " + эл.Параметр + " --encrypt " + ИмяФайлаИсточника;
ЗапуститьПриложение(СтрокаЗапуска, ФайлИсточникНаДиске.Путь, Истина);
20 Fedor-1971
 
04.09.17
17:25
(19) работают, только скорее всего, C:\Program Files (x86)\GNU\GnuPG\ нет в переменной Path
Порядок поиска: текущий каталог (откуда стартанули), ФайлИсточникНаДиске.Путь, потом по порядку всё что в Path системы, потом Path пользователя (возможно наоборот, давненько не рылся в системах)