Имя: Пароль:
1C
1С v8
Не работает ЗапуститьПриложение() из фонового задания
,
0 alsushka
 
28.08.13
11:28
Добрый день!
Возникла такая проблема: на 1с8.2 клиент-серверная на sql создаю фоновое задание, которое в свою очередь запускает командную строку с помощью функции ЗапуститьПриложение(). Через COMОбъект("WScript.Shell") тоже пробовала - не помогает.
Код рабочий, тк при переносе во внешнюю обработку или (!!!!) в файловый режим отрабатывает без проблем. Видимо затык в sql. Как я понимаю фоновые задания запускаются под пользователем USR1CV8, у которого итак уже административные права. М.б. кто-то сталкивался с подобным или просто обладает волшебными знаниями? Подскажите пожалуйста, уже неделю бьюсь!
PS СП читала внимательно
1 Нуф-Нуф
 
28.08.13
11:32
у USR1CV8 ни разу не административные права
2 alsushka
 
28.08.13
11:36
Нуф-Нуф, но он входит в группу Administrators - разве это не значит "административные права"?
3 Галахад
 
гуру
28.08.13
11:40
Не понял. Что делает фоновое задание?
4 alsushka
 
28.08.13
11:48
Галахад, фоновое задание вообще создает отчет и выгружает его в эксель. Файлик эксель шифруется(как-раз шифрование происходит вызовом внешнего приложения из командной строки, в свою очередь командную строку пытаюсь запустить с помошщью ЗапуститьПриложение). Фоновое задание отрабатывает создание файла эксель и выгрузку данных, но затыкается на ЗапуститьПриложение. Точнее даже не затыкается, а просто его не выполняет. При этом в Журнале регистрации "задание выполнено". Но файлик не шивруется. Повторюсь, что в файловой версии или из внешней обработки код исполняется.
5 ДенисЧ
 
28.08.13
11:49
Мне вчера не удалось победить.
6 alsushka
 
28.08.13
12:01
ДенисЧ! Давайте побеждать вместе! =)
7 Heckfy
 
28.08.13
12:02
ЗапуститьПриложение() у тебя где находится?
8 ДенисЧ
 
28.08.13
12:02
(6) Нет, я со вчерашнего дня в этом вопросе играю в Володю Ульянова.
9 alsushka
 
28.08.13
12:04
Heckfy, вот процедура в общем модуле:
Процедура ЕжедневныйОтчетСчетаПоКлиентам() Экспорт
   ИмяКлюча = "Name";
   ИмяФайлаЭксель = ЗапросДляОтчета();

   //shell=Новый COMОбъект("WScript.Shell");
   //shell.Run("C:\mail_1C\1.cmd"); - цмд-шник содержит тот же самый код, что и ниже

   ЗапуститьПриложение("gpg --encrypt -r " + Символ(34)+ СокрЛП(ИмяКлюча) + Символ(34) + " " + ИмяФайлаЭксель);
КонецПроцедуры
10 Heckfy
 
28.08.13
12:07
(9) Общий модуль серверный?
11 alsushka
 
28.08.13
12:09
Heckfy, серверный. на самом деле галочками игралась - перебрала все варианты - толку нет.
12 Heckfy
 
28.08.13
12:12
(11) Где то не доигралась. Отладчиком пройдись. Только сервер в режиме -debug запусти.
13 alsushka
 
28.08.13
12:20
Heckfy, подскажите пожалуйста, как запустить сервер  в режиме -debug. (блондинка я)! спасибо =)
14 Heckfy
 
28.08.13
12:24
(13) ищеш в реестре сроку типа
"C:\Program Files\1cv82\8.2.18.96\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv82\srvinfo"

Заменяешь ее на строку типа:
"C:\Program Files\1cv82\8.2.18.96\bin\ragent.exe" -srvc -agent -regport -debug 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv82\srvinfo"

Рестартишь службу агента сервера 1С

Как то так....
15 alsushka
 
28.08.13
15:02
(14) Heckfy, прогнала отладку в режиме дебаг. Никакого результата- якобы выполнена команда, но на деле нет. Даже командную строку не открывает.
16 Heckfy
 
28.08.13
15:30
(15) Какую командную строку??? В (9) нет ни слова про командную строку.

Чё то у меня телепат.длл сломался :( :( :(

Поставь точку останова на ЗапуститьПриложение("gpg --encrypt -r " + Символ(34)+ СокрЛП(ИмяКлюча) + Символ(34) + " " + ИмяФайлаЭксель);

Останавливается на ней?
17 Очкарик
 
28.08.13
15:33
Жесть какая
18 1Сергей
 
28.08.13
15:34
(17) жестяная
19 palpetrovich
 
28.08.13
15:36
может тупо "КомандаСистемы"  попробовать?
20 alsushka
 
28.08.13
16:45
(16) останавливается. по f11 идет дальше
(19) КомандаСистемы на сервере не работает
21 alsushka
 
28.08.13
16:51
(16) возможно я неправильно выражаюсь. Когда код срабатывает из внешней обработки - появляется dos-овое черное окошко - на долю секунды. - именно его я обозвала командной строкой.
22 alsushka
 
28.08.13
18:30
Всем спасибо! тему закрываю. чтото с правами у USR1CV8.
23 Mnemonic1C
 
28.08.13
21:43
(0) А не факт что приложение которое у тебя шифрует файл нормально отработает в фоне.
Попробуй у службы агента 1С сервера включить галочку "Разрешить взаимодействие с рабочим столом".
24 Torquader
 
28.08.13
23:05
А кто сказал, что под пользователем сервера это приложение вообще запускается - как вариант, писать службу, которая исполняет задания и складывать ей задания в файл.
Второй вариант, разрешить пользователю сервера интерактивный вход (на время) и тренироваться под ним выполнять эти чудо-команды.
Также нужно понимать, что "ЗапуститьПриложение" работает через реестр и ассоциации, что у пользователя может быть недоступно.
25 alsushka
 
29.08.13
11:23
В качестве эксперимента создала cmd файл (который вызываю с помощью  "ЗапуститьПриложение"), в котором кроме строки запуска шифровки добавила :
echo Start >> С:\mail_1C\a5.txt
echo String1 >> С:\mail_1C\a5.txt

Самое интересное, что текстовые файлы создались без вопросов, а вот шифровка так и не запустилась. Т.е. "доступ до раб стола" у юзера есть, но доступа до программы нет...?

Попробовала добавить runas другой пользователь, но там о5 же появляется окошко с требованием пароля и в фоновом режиме не отрабатывает.

Мб есть у кого еще какие идеи? :)