|
v7: Определить как запущена 1с | ☑ | ||
---|---|---|---|---|
0
AntiBuh
11.11.15
✎
10:39
|
Напомните пожалуйста
можно ли определить как запущена 1с в обычном режиме - с окном без окна, например с командной строки как ком объект из другой 1с если можно, как это можно сделать? |
|||
1
vde69
11.11.15
✎
10:46
|
как ком объект из другой 1с - да можно
остальное - нет |
|||
2
AntiBuh
11.11.15
✎
10:55
|
(1) подскажи хотябы это, если не трудно
|
|||
3
НЕА123
11.11.15
✎
11:12
|
ТекущийРежимЗапуска()
не? |
|||
4
НЕА123
11.11.15
✎
11:14
|
(3)
сторно, это для 8. |
|||
5
ДенисЧ
11.11.15
✎
11:25
|
У 77 всегда есть окно. Просто оно не всегда видно.
|
|||
6
AntiBuh
11.11.15
✎
12:38
|
так для клюшек все-таки как определить?
хотябы оле/не оле |
|||
7
ЧеловекДуши
11.11.15
✎
12:51
|
(6) Чего?
|
|||
8
ЧеловекДуши
11.11.15
✎
12:52
|
(6) Что тебе даст, оле или нет?
|
|||
9
HawkEye
11.11.15
✎
12:52
|
(6) зачем? у тебя безконтрольные подключения по ОЛЕ? )))
|
|||
10
ЧеловекДуши
11.11.15
✎
12:53
|
+(8) У 1С 7.7... Что оле, что не оле. Все что выполняется на стороне клиента "ОЛЕ", все выполняется как обычно, только ты не видешь окна :)
|
|||
11
vde69
11.11.15
✎
13:01
|
кстати для 7.7 можно получить полную строку запуска вместе со всеми параметрами (включая логин и пароль если они есть)
для проверки откройте диспечер задач и посмотрите колонку "командная строка"(если ее нет - добавте) сравните чего там лежит при обычном или при комах / пакетниках и вперед.... |
|||
12
НЕА123
11.11.15
✎
13:11
|
событие ПриНачалеРаботыСистемы() только при интерактивной работе срабатывает...
но может я ошибаюсь. |
|||
13
HawkEye
11.11.15
✎
13:42
|
(12) относительно ошибаешься... ))
|
|||
14
AntiBuh
11.11.15
✎
13:57
|
(8) (9) скажем так
есть служебный ползатель может запускаться из другой конфы и, например, по регламенту, ну и ручками само собой вот хотелось бы различить когда как запускает |
|||
15
HawkEye
11.11.15
✎
13:57
|
(14) не надо служебного пользователя запускать ручками...
|
|||
16
AntiBuh
11.11.15
✎
14:00
|
(15) ну ручками это так, для отладок
|
|||
17
HawkEye
11.11.15
✎
15:23
|
(16) ну вот и все... в ПриНачалеРаботыСистемы - смотришь под каким пользователем зашли, под служебным = значит ОЛЕ, делаешь что надо и закрываешь программу...
для отладки - закоментируешь эту проверку, или положи куда-нибудь файл-флаг... увидел что служебный пользователь - смотришь файл, есть - значит отладка, нет, значит не отладка )) |
|||
18
ЧеловекДуши
11.11.15
✎
15:36
|
(16) Определи глобальную переменную "Я_ОЛЕ_Пользователь".
Если там записано 1, значит оле. Если 0, то зашел пользователь. Далее везде, где запускается ОЛЕ соединение, дописываешь эту "Переменную" :) |
|||
19
eshtrey
11.11.15
✎
16:38
|
ПриНачалеРаботыСистемы() вставь такой код
locator = СоздатьОбъект("wbemscripting.swbemlocator"); service = locator.connectserver(); WSHShell = createobject("WScript.Shell"); oExec = WSHShell.Exec("rundll32 kernel32,SleepEx"); ProcessId = service.Get("Win32_Process.Handle="+oExec.ProcessId).ParentProcessId; oExec.Terminate(); CommandLine = service.Get("Win32_Process.Handle="+ProcessId).CommandLine; ТипЗапуска = ""; Если Найти(CommandLine,"-Embedding")>0 Тогда ТипЗапуска = "OLE"; Иначе типЗапуска = "не OLE" КонецЕсли; |
|||
20
AntiBuh
11.11.15
✎
18:15
|
пипец
проще еще одну учетку добавить спасибо всем за ответы |
|||
21
Злопчинский
12.11.15
✎
12:33
|
(19) спасибо, сграбил
|
|||
22
Злопчинский
12.11.15
✎
12:34
|
(20) для служебного пользователя надо все очень аккуратно писать. он интерактивно мыслию дейстовать не умеет, свалится по ошибке какой-нить - и будет у тебя процесс висеть внутрях, ждать когда ты меню-файл-выход сделаешь
|
|||
23
varelchik
12.11.15
✎
17:07
|
(11)А прикольно на счет командной строки.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |