|
Не работает ЗапуститьПриложение() из фонового задания | ☑ | ||
---|---|---|---|---|
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 же появляется окошко с требованием пароля и в фоновом режиме не отрабатывает. Мб есть у кого еще какие идеи? :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |