Имя: Пароль:
1C
1С v8
НаСервере и ЗапуститьПриложение....
0 ДенисЧ
 
09.09.13
13:39
Есть процедура НаСервере.
Там код

Команда = "..\..\7z.exe e " + ИмяФайла;
каталогРаботы = Константы.КаталогРазобранныхФайлов.Получить() + "Data\" + КодАптеки + "\";
имяРабочегоФайла = каталогРаботы + "\003inf.dbf";
    
ЗапуститьПриложение(Команда, каталогРаботы, Истина);

Виснет. Причём до рестарта агента сервера - не снять сеанс.

Попробовал

WSShell = Новый COMОбъект("WScript.Shell");
Попытка
    WSShell.CurrentDirectory = каталогРаботы;
Исключение
    Сообщить(ОписаниеОшибки());
КонецПопытки;
WSShell.Run(Команда);

имею
Ошибка при установке значения атрибута контекста (CurrentDirectory): Произошла исключительная ситуация (0x80070003)


Что делать??
1 Rie
 
09.09.13
13:42
(0) А каталогРаботы - это что? Доступ к нему есть?
2 Heckfy
 
09.09.13
13:42
А XBase не подойдет?
3 Зойч
 
09.09.13
13:42
а че зип не пользуешь?
4 ДенисЧ
 
09.09.13
13:43
(1) КаталогРаботы - путь к каталогу, в котром должно разобраться ...
(2) Как мне xbase распаковать любой из архивов rar,zip, arj, etc?
(3) от сторонних прилетает. Я тут управлять не могу
5 Heckfy
 
09.09.13
13:44
(4) Сорри, не заметил. :(
6 BOZKURT
 
09.09.13
13:47
Может нужно дать права на папку пользователю службы 1с? (как вариант)
7 ДенисЧ
 
09.09.13
13:48
(6) Права вроде как должны быть...
8 Heckfy
 
09.09.13
13:48
А руками на сервере распаковать получается? Может у тебя брандмауэр блокирует....
9 Rie
 
09.09.13
13:48
10 ДенисЧ
 
09.09.13
13:50
(8) Как Оно может блокировать то, что выполняется внутри самого сервера?
11 ДенисЧ
 
09.09.13
13:50
(9) У меня не вин7, и вин сервер 2003 там
12 Heckfy
 
09.09.13
13:52
(10) А ты попробуй на серваке руками распаковать.
13 cw014
 
09.09.13
13:53
А это обязательно надо на сервере делать?
14 ДенисЧ
 
09.09.13
13:54
Руками проходит.
Дал принудительно права - без толку.
(13) Да, это будет регламентное задание. И никто его на клиенте запускать не станет.
15 Heckfy
 
09.09.13
13:57
Процедура находится в общем сервернрм модуле?
16 ДенисЧ
 
09.09.13
13:59
(15) Да. Клиент и сервер галки. Сейчас попробую снять клиента...
И поставить привилегированность...
17 ДенисЧ
 
09.09.13
14:01
Не помогло
18 Йохохо
 
09.09.13
14:02
а так
Команда = "..\..\7z.exe e """ + ИмяФайла + """ -o""" + каталогРаботы + " -y"
19 ДенисЧ
 
09.09.13
14:11
(18) Сейчас попробую...
20 ДенисЧ
 
09.09.13
14:15
Не, та же картина...
21 ДенисЧ
 
09.09.13
14:16
Причем 7z.exe даже в процессах не появляется...
22 Heckfy
 
09.09.13
14:17
По ходу пришло время отладчика.
23 ДенисЧ
 
09.09.13
14:19
(22) А что тебе отладчик даст, если оно зависает именно на строке ВыполнитьПриложение() ?
24 Йохохо
 
09.09.13
14:21
а если скомбинировать
Команда = "..\..\7z.exe t """ + ИмяФайла + """; // -o""" + каталогРаботы + """ -y";
c
ЗапуститьПриложение(Команда, каталогРаботы, Истина, КодВозврата);
СообщитьНаСервере(КодВозврата)
25 pumbaEO
 
09.09.13
14:23
(23) какой либо bat файл выполняется?
26 H A D G E H O G s
 
09.09.13
14:24
Может какая формочка вылазит скрытая у этого 7 zip

Интерактивный режим работы с рабочим столом стоит?
27 ДенисЧ
 
09.09.13
14:24
(24) У ЗапуститьПриложение() нет 4го параметра.
(25) нет, ничего подозрительного не появляется
28 H A D G E H O G s
 
09.09.13
14:24
У службы 1С.
29 ДенисЧ
 
09.09.13
14:24
(26) Интерактивно проходит, см (14)
30 Heckfy
 
09.09.13
14:26
(27) Таки есть

ЗапуститьПриложение(<СтрокаКоманды>, <ТекущийКаталог>, <ДождатьсяЗавершения>, <КодВозврата>)
31 ДенисЧ
 
09.09.13
14:28
(30) Таки нет

Глобальный контекст (Global context)
ЗапуститьПриложение (RunApp)
Синтаксис:

ЗапуститьПриложение(<СтрокаКоманды>, <ТекущийКаталог>, <ДождатьсяЗавершения>)

У меня 8,2,14
32 Infsams654
 
09.09.13
14:29
(29) ну самое простое, не совать это в код. А т.к. рег. задание, то посмотреть там расписание, и перед каждым выполнением запускать виндовым шедулером батник на распаковку, а в 1с грузить распакованное.
Кстати, и вындовым шедулером потом удалять старое.
33 ДенисЧ
 
09.09.13
14:34
(32) Не... Там идёт куча проверок на допустимость и актуальность файлов (Манина задачка :-) Загрузка прайсов...)

Но если ничего не поможет, то придётся бить задачу на две с использованием файл-флага. Но не хотелось бы. Очень.
34 1Сергей
 
09.09.13
14:46
(33) ехе-шник пробовал в корень С положить и запустить оттуда?
35 ДенисЧ
 
09.09.13
14:49
(34) Нет... Попробую сейчас...
36 ДенисЧ
 
09.09.13
14:52
Не... Тот же мтс... И с того же боку...
37 1Сергей
 
09.09.13
14:54
я так понимаю, что проблема с любым ехе-файлом? если попробовать батник запустить?
38 ДенисЧ
 
09.09.13
14:55
(37) Ага. С любым. Батник тоже пробовал...
39 Infsams654
 
09.09.13
16:17
почему не проходит? Прочитай еще раз (32) - там перед 1С уже будут готовые файлы после 7zip
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан