Имя: Пароль:
1C
1С v8
КомандаСистемы / ЗапуститьПриложение перенаправление консольного вывода
0 AlexSTAL
 
08.12.18
09:43
Понимаю, что выходные, но задам вопрос, пока есть время

1С:Предприятие 8.3 (8.3.13.1513), использую консольную утилиту для распознавания штрих-кодов. Специально из путей убрал русские буквы, пробелы.

&НаКлиенте
Процедура Команда1(Команда)
    КомандаСистемы("C:\ZBar\bin\zbarimg.exe -D --xml c:\1\aaa.jpg > c:\1\aaa.xml", "C:\ZBar\bin\");
КонецПроцедуры


работает. Переношу "на сервер" (база файловая, локальная):

&НаСервере
Процедура Команда1НаСервере()
    ЗапуститьПриложение("C:\ZBar\bin\zbarimg.exe -D --xml c:\1\aaa.jpg > c:\1\aaa.xml", "C:\ZBar\bin\");
КонецПроцедуры

не работает! Видно, как появляется консольное окно с выводом информации, т.е. команда отрабатывает до символа ">" перенаправления вывода.
Если предварительно записать команду в CMD и запустить CMD - всё отрабатывает...

Гуглил, мистил, яндексил.... ничего подобного не обнаружил...
1 sieben
 
08.12.18
10:12
Забавная методика "переноса"...

1) Перенаправление ввода/вывода - функция командной оболочки.
2) КомандаСистемы - запуск командной оболочки с передачей ей параметров.
3) ЗапуститьПриложение - запуск приложения непосредсвенно. Запускаемое приложение про твоё перенаправление ничего не знает.

%comspec% /с
2 vde69
 
08.12.18
11:14
нет доступа c:\1\aaa.xml
3 AlexSTAL
 
08.12.18
12:44
(1) Да-да, я понимаю, что не правильно, но вот на инфостарте в 2013 году большая публикация:

ЗапуститьПриложение("zbarimg -q --xml " + ИмяФайлаИзображения + " > " + ИмяВременногоФайлаXML, , Истина);

Если она опубликована, значит у автора всё работало...

Я пробовал напрямую в ЗапуститьПриложение указывать через CMD:
c:\windows\system32\cmd.exe /C
c:\windows\system32\cmd.exe "/C"
не работает, пишет не удаётся найти, проверьте правильность написания
Просто c:\windows\system32\cmd.exe естественно работает
4 AlexSTAL
 
08.12.18
12:45
(2) да ну я же написал, что файловая база, локальная, админ...
5 AlexSTAL
 
08.12.18
12:49
(1) Ха, я наверное пробовал не с полным путём, а просто CMD...
Нашёл тему v8: ЗапуститьПриложение() с параметрами
с полным путём заработало! Спасибо!
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.