![]() |
![]() |
|
BAT для запуска 1С 8 | ☑ | ||
---|---|---|---|---|
0
Михей
16.09.08
✎
14:29
|
Возникла следующая задача.
У нас на терминальном сервере запущено три клиентских соединения с разными базами, которые выполняют регламентные задания (не те которые можно создавать в конфигураторе). Но возникают ситуации, по разным причинам (перезагрузка сервера, администратор кильнул все процессы, остановилась служба сервера 1С:Предприятия и т.п.) когда эти клиентские сессии обрываются и соответственно не работают регламентные задания. Как вариант написать BAT - файл который по шедулеру проверял бы запущена 1с - ка или нет, и если нет то запустить. Может у кого есть че то готовое? Не хочеться изобретать велосипед. Спасибо! |
|||
1
IronDemon
16.09.08
✎
14:33
|
On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2") Set objClass = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2:Win32_Process") If Err.Number <> 0 Then WScript.Echo Err.Number & ": " & Err.Description WScript.Quit End If QueryText = "SELECT * FROM Win32_Process WHERE Name = '1Cv8.exe'" Set colProc = objService.ExecQuery(QueryText) If colProc.Count > 0 Then 'WScript.Echo "Сервер уже запущен" WScript.Quit End If 'WScript.Echo "Запускаем" Res = objClass.Create("C:\Program Files\1cv81\bin\1cv8.exe ""Параметры""", Null, Null, PID) If Res <> 0 Then WScript.Echo "Код ошибки: " & Res WScript.Quit End If |
|||
2
Михей
16.09.08
✎
14:36
|
(1) о!, спасибо!
|
|||
3
Михей
16.09.08
✎
16:01
|
Как из объекта Win32_Process узнать что это клмент такой то базы данных?
|
|||
4
IronDemon
16.09.08
✎
16:06
|
А этого в первом вопросе не было :)
Возможно можно проанализировать командную строку? |
|||
5
Михей
16.09.08
✎
16:19
|
да, из командной строки вытянуть впринципе можно
|
|||
6
Salvador Limones
16.09.08
✎
16:22
|
CommandLine выдаст только "C:\Program Files\1cv81\bin\1cv8.exe" enterprise
|
|||
7
Михей
16.09.08
✎
16:23
|
у мну побольше инфы выдает
|
|||
8
Михей
18.09.08
✎
12:05
|
up
вопрос еще актуален Опеределить что запущен процесс 1cv8.exe через Win32_Process можно, но как определить к какой базе относиться этот процесс? |
|||
9
OpKc
18.09.08
✎
12:10
|
может, для каждой базы прописать свой заголовок окна и проверять по нему?..
|
|||
10
Михей
18.09.08
✎
12:10
|
ап
|
|||
11
Михей
18.09.08
✎
12:11
|
(9) не против. Заголовки окон и так разные.
Как это сделать? |
|||
12
OpKc
18.09.08
✎
12:14
|
хз :) надо подумать..
|
|||
13
Черт
модератор
18.09.08
✎
12:15
|
перезагрузка сервера, администратор кильнул все процессы, - жесть
админа убить нужно |
|||
14
asady
18.09.08
✎
12:18
|
(0) наводка.
если база файловая, то в папке C:\Documents and Settings\login\Application Data\1C\1Cv81\c97b2b53-8eaf-4bb8-937b-f98060271442 (GUID базы) при запуске сессии появляется файлик |
|||
15
Михей
18.09.08
✎
12:24
|
(14) база SQL
|
|||
16
Михей
18.09.08
✎
12:25
|
(13) к примеру обновление конфигурации, всех то выгнать нуно
|
|||
17
Михей
18.09.08
✎
12:35
|
ап ап
|
|||
18
asady
18.09.08
✎
12:35
|
(15) для скульной тоже самое.
файлик с именем 1Cv8.lck |
|||
19
Михей
18.09.08
✎
12:45
|
(18) сенкс, вроде есть
|
|||
20
Михей
18.09.08
✎
13:26
|
а эти GUID они я так понял на разных компьютерах разные?
Запустил на терминале у GUID - а одно значение Запустил на своем компе у GUID - а другое значение... |
|||
21
Михей
18.09.08
✎
13:32
|
ап
|
|||
22
smaharbA
18.09.08
✎
13:37
|
добавь в строку запуска всех клиентов левый параметр /1, /2, /3
|
|||
23
smaharbA
18.09.08
✎
13:41
|
а вообщето можно депенсы найти, но код будет сложнее, да и ни кчему это - баловство
|
|||
24
asady
18.09.08
✎
13:50
|
(20) тебе же на одном компе это надо делать.
|
|||
25
Serg_1960
18.09.08
✎
14:35
|
(0) Вы же все равно конфу "подправили", что-бы запускать "свои" регламенты...Вот пусть она(конфа) и определяет <запущена ли 1С> :о)
А в планировщике батничек пусть "тупо" считает количество задач. Если их не три - пусть вызывает все три базы поочереди... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |