Имя: Пароль:
1C
 
Запуск 1cv8 в фоновом режиме
0 DenisKs
 
04.03.09
09:23
Делаю робота для выполнения регламентных заданий в фоновом режиме в файловом варианте. Для этого при запуске программы проверяю запущен ли пользователь с именем robot, если не запущен то запускаю. Проблема в следующем. Вот такой модуль:
СтрокаЗапуска = """"+КаталогПрограммы()+ "1cv8.exe"" ENTERPRISE /F"""+НСтр(СтрокаСоединенияИнформационнойБазы(),"File")+""" /Nrobot /P777";
shell = Новый COMОбъект("WScript.Shell");
shell.Run(СтрокаЗапуска,1,Ложь);
почемуто не срабатывает, программа запускается но не в фоновом режиме. Я уже перепробывал все параметры и ни как.
1 zbv
 
04.03.09
09:25
а что подразумеваешь под запуском программы в "Фоновом режимме" ?
2 Defender aka LINN
 
04.03.09
09:25
(0) А в КАКОМ режиме она должна запуститься?
Ставь клиент-сервер и будет тебе счастье... За небесплатно :)
3 zbv
 
04.03.09
09:26
+(1) и этот модуль в конфигурации, в которой хочешь выполнять фоновые задания?
4 DenisKs
 
04.03.09
09:27
В Фоновом значит не видимым для пользователя.
5 H A D G E H O G s
 
04.03.09
09:28
(4) Скрой основное окно программы
6 Defender aka LINN
 
04.03.09
09:28
(4) Запускай под админской учеткой, пользователь и не увидит.
7 DenisKs
 
04.03.09
09:28
(3) Этот модуль находится в процедуре ПриНачалеРоботы()
8 DenisKs
 
04.03.09
09:29
(5) Каким образом?
9 DenisKs
 
04.03.09
09:30
(6) Это тоже вариант, но как это сделать автоматом?
10 H A D G E H O G s
 
04.03.09
09:31
(9) runas, но это небезопасно
11 H A D G E H O G s
 
04.03.09
09:34
(8) Возьмите Нетленку, там это реализовано.
http://www.infostart.ru/projects/1737/  
Объект addin.windows
процедура:
Объект.ВидимостьОкна(Объект.ДескрипторГлавногоОкна,Истина);
12 H A D G E H O G s
 
04.03.09
09:34
Пардон,
Объект.ВидимостьОкна(Объект.ДескрипторГлавногоОкна,Ложь);
13 Serg_1960
 
04.03.09
09:37
(0) Почему от типового функционала отказались? Причины?
14 DenisKs
 
04.03.09
09:48
(8) Хотелось бы средствами 1с. Я реализовал с помощью автостартера http://infostart.ru/projects/2575/. Все вроде как работает, но под каждым пользователем нужно прописывать параметры запуска, что не удобно.
15 H A D G E H O G s
 
04.03.09
09:48
(14) Хотите.
16 DenisKs
 
04.03.09
09:51
(13) Я и использую типовой, только как известно, для запуска регламентных заданий в файловом варианте нужно указать конкретного пользователя, вот я и указываю robot который должен быть запущен.
17 DenisKs
 
04.03.09
09:54
Дело в том, что везде пишут, что вот в таком варианте shell.Run(СтрокаЗапуска,1,Ложь); должен осужествлятся в фоновом режиме. Почему у меня не срабатыват не пойму.
18 DenisKs
 
04.03.09
10:01
(15) Попробую с помощью Нетленки, спасибо за совет.
19 Gamm
 
04.03.09
10:19
(0) hide1C.dll
20 DenisKs
 
04.03.09
22:05
Может кто разбирается в скриптах и подскажет почему 1с не запускается в фоновом режиме.
shell.Run(СтрокаЗапуска,1,Ложь)
21 DenisKs
 
06.03.09
22:52
Скорее всего проблемма в самой 1с.
Пробую штатными средствами запустить программу скрыто не запускается.

БазаДляРобота = Новый COMОбъект( "V81.Application" );
БазаДляРобота.Connect("ПутьКБазеСПаролями");
БазаДляРобота.Visible = Ложь;

В описании сказано:

Automation сервер
Visible (Visible)
Использование:
Только чтение.
Описание:
Тип: Булево. Показывает/скрывает пользовательский интерфейс 1С:Предприятия.
Примечание:
Истина - пользовательский интерфейс показан; Ложь - скрыт.
Начальное значение после вызова метода Connect – Ложь.

Если реквизит только чтение, значит и запуск наверное не возможен. Задал вопрос разработчикам, жду пока ответа.
23 DenisKs
 
13.03.09
00:29
Привожу ответ разработчиков:
Если установлено Visible=Ложь, то запущенное приложение активно только пока удерживается ссылка на него. В приведенном примере ссылка хранится в переменной БазаДляРобота. Как только эта переменная будет освобождена, клиентское приложение будет завершено. Чтобы приложение было запущено длительное время, ссылка на него должна удерживаться на реквизите формы, обработки или в глобальной переменной.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn