Имя: Пароль:
1C
 
Можно ли так запускать базы 1С:7.7, чтобы они не прописывались в окно запуска?
0 sol
 
13.08.10
13:41
Уважаемые форумчане!
Можно запускать базу 1С:7.7 из ярлыка, прописывая в ярлыке строку:

"C:\Program Files\1Cv77\BIN\1cv7s.exe" enterprise /DПутьКБазе\ /nПользователь /pПароль

Но тогда база будет прописываться в окне запуска баз.

Можно ли сделать так, чтобы запускать базы 1С:7.7 и чтобы при этом список баз в окне запуска был всегда чистым?
1 ДенисЧ
 
13.08.10
13:43
прописать, запустить, после завершения удалить...
2 Ёпрст
 
гуру
13.08.10
13:43
чисти реестр опосля себя.
3 aka AMIGO
 
13.08.10
13:43
(0) зачем?
4 aka AMIGO
 
13.08.10
13:45
тогда надо чистить после себя еще и mlg
5 sol
 
13.08.10
13:45
(1) (2) Нужно, чтобы это происходило автоматически!
6 ДенисЧ
 
13.08.10
13:46
(5) неужели ты думаешь, что нельзя из реестра автоматически удалить записи?
7 MikaelW
 
13.08.10
13:47
(0) Любопытства ради. Обьясни зачем?
8 Futarkh
 
13.08.10
13:47
(0)пишешь батник, в первой строке запускаешь 1С, во второй чистишь реестр
9 sol
 
13.08.10
13:50
(3) (7) Начальство думает, что так безопаснее. В долгие дискусии я с ним не вступаю.
10 Расколбас
 
13.08.10
13:51
(9) Тогда не взлетит. Ибо в батнике по чистке реестра этот путь прописан будет.
11 KUBIK
 
13.08.10
13:52
(9) "Начальство думает, что так безопаснее" = типа, пацаны когда приедут, сразу в реестр Винды полезут.... а там нифига, во пролёт!  :)))
12 Расколбас
 
13.08.10
13:53
Хотя... там же путь в параметрах, тогда взлетит.
13 Сияющий Асинхраль
 
13.08.10
13:54
(9) Можно просто использовать сторонние запускалки 1С, некоторые из них вообще не используют реестр, но, строго говоря, 1C не та система, где можно внятно позаботится о безопасности.
14 VladZ
 
13.08.10
13:57
(0) Баловство все это...
Утюг и паяльник - и никакой криптоанализер не нужен.
15 1Сергей
 
13.08.10
13:57
(0) Сам-то не боишься скорого приезда масок-шоу?
16 aka AMIGO
 
13.08.10
13:59
у меня на последней работе был замдир, он носил с собой DataStorage (что-ли) с винтом, на нем и была база..
вот так тоже можно: адрес есть, а базы нет..
17 MikaelW
 
13.08.10
14:00
(15) Маски шоу сейчас вроде не актуально.
"Налоговую полицию" разогнали....
18 Aleksey_3
 
13.08.10
14:00
Только и перед запуском тоже надо в реестр прописать инфу.

Или переходите на 8-ку там это реализовано
19 aka AMIGO
 
13.08.10
14:04
+16 вдогонку последнее: можно и движок и базу иметь на съемном харде, тогда останется только реестр
20 VladZ
 
13.08.10
14:09
(19) Можно в терминале работать, тогда и реестр будет чист. :)
21 Aleksey_3
 
13.08.10
14:10
Или на виртуальной машине
22 Torquader
 
13.08.10
18:58
На самом деле можно чистить реестр (то есть строку запуска) сразу после появления окна 1С - дальше она туда и не смотрит.
У меня даже написана запускалка, которая добавляет базу в реестр на момент старта, а потом тут же удаляет. Только информацию для запуска приходится хранить в самом реестре.
Кстати, если в REG-файле указать минус в строке указания пути в реестре, то эта ветвь будет удалена из реестра.
23 Torquader
 
13.08.10
19:01
Безопастность, кстати, не только от каких-то "маски-шоу", а от самих пользователей - тот, кому не надо, и не узнает, где живёт база.
Да и путаницы меньше - если пользователь видит окно, в котором есть базы, то он может попытаться запустить их, а если окно пустое, то сами базы никто искать не будет (хотя, находятся они очень просто - по наличию MD-файла).
24 Torquader
 
13.08.10
19:02
(+23) Безопасность пишется без т - чего-то сразу не заметил, что написал неправильно.
25 1C-Nick
 
13.08.10
19:06
автор исчез, а так и не сказал чем именно по мнению начальства так безопаснее
26 Cthulhu
 
13.08.10
19:19
WSH-скрипт для запуска 1С.
1. Регистрирует информационную базу в реестре.
2. Запускает 1С на этой базе.
3. Удаляет регистрацию информационной базы в реестре.
Позволяет запускать 1С на нужной "секретной" базе, которая не будет фигурировать в списке запуска. Любую часть скрипта можно использовать и независимо, для различных целей (просто закомментировав лишнее).
BasePath = "C:\TEMP\Test\" ' путь к каталогу информационной базы
BaseName = "Новая ИБ" ' название информационной базы
ExePath = "C:\Program Files\1Cv77\BIN\1cv7s.exe" ' путь к исп. файлу 1С
User = "Admin" ' имя пользователя
Pass = "111" ' пароль пользователя
Set WshShell = CreateObject("WScript.Shell")
'====================================================================
CommandLine = "REG ADD HKCU\Software\1C\1Cv7\7.7\Titles /v """ & _
   BasePath & "\"" /t REG_SZ /d """ & BaseName & """ /f"
WshShell.Run CommandLine, 0, True
'====================================================================
CommandLine = """" & ExePath & """ enterprise /D""" & _
   BasePath & """ /N" & User & " /P" & Pass
WshShell.Run CommandLine, 1, False
WScript.Sleep 500
'====================================================================
CommandLine = "REG DELETE HKCU\Software\1C\1Cv7\7.7\Titles /v """ & _
   BasePath & "\"" /f"
WshShell.Run CommandLine, 0, True
(с)ельнотырено
27 Torquader
 
13.08.10
19:27
(26) У меня подобное, только написано на Си - там можно при запуске процесса делать WaitForInputIdle, то есть дождаться, пока 1С полностью запустится, так как на медленных машинах иногда и 5 секунд не хватает, чтобы дождаться, пока база загрузится.
А самое удачное решение - удаление базы из ПриНачалеРаботы - тогда гарантировано удалится уже после запуска.
Ещё можно добавить монтирование сетевого диска, на котором живёт база и проверка наличия MD-файла, чтобы не запускать несуществующую базу.
Я писал на Си, так как получается Exe-файл, параметры запуска живут в реестре в ветке пользователя - поэтому, Exe-файл один, а каждый пользователь может запустить свою базу одним и тем же ярлыком на рабочем столе (который положен а All Users, чтобы его случайно не удалили).
28 Torquader
 
13.08.10
19:33
+(27) Если не забуду - выложу исходники - может кому-то это поможет.
(Exe-шник выкладывать на бесплатном хостинге как-то стрёмно - в него могут и троянца сунуть - хотя, можно и MD5 написать - но будет ли кто-то проверять ?)
29 vde69
 
13.08.10
19:45
http://infostart.ru/public/16686/

Позволяет исключить ввод паролей пользователями (использует Win логины), автоматически предоставлять пользователю список актуальных баз (именно актуальных, то есть в те которые он имеет право на вход). Ведет 2 списка баз "основные" "дополнительные".
30 vcv
 
14.08.10
09:08
(23) "от самих пользователей - тот, кому не надо, и не узнает, где живёт база."
А "Помощь/О программе" в 1С уже отменили, где показан путь к базе?
31 ДенисЧ
 
14.08.10
09:09
(30) А это окно вырезать из ресурсов...
32 ДенисЧ
 
14.08.10
09:10
(22) "дальше она туда и не смотрит." - да щаззззЪ
33 vcv
 
14.08.10
09:36
(31) Ну если патчить, так можно и путь в реестре, куда эска лезет поменять. И пусть ищут, где там список баз в какой-нибудь HKCU\Software\Microsoft... прячется.
34 vde69
 
16.08.10
08:46
кстати кто знает как запустить 1с без активного пользователя винды? то-есть совсем без обращений к регистру?

а то регламентные задания не всегда стартуют.
35 NikVars
 
16.08.10
11:18
(30) Если путь длинный, то нифига ты тама не поймешь! Он втупую будет обрезаться...
Другое дело: Сервис - Табло КаталогИБ()...
36 smaharbA
 
16.08.10
11:20
(26) этож ужаснах
(27) еще ужаснее
37 sol
 
18.08.10
14:21
Всем спасибо сейчас делаю, как посоветовали в (8). Но вот, что интересно на моем ПК работает бат файл:

CD C:\Program Files\1Cv77\BIN
CAll 1cv7s.exe enterprise /D"ПутьКБазе"
REG DELETE HKEY_CURRENT_USER\Software\1C\1Cv7\7.7 /f

На других ПК выдает ошибку:
«Ошибка DllRegisterServer в C:\Program Files\1Cv77\BIN\Autotranp.dll. Возвращен код: 0x80004005»
И Сообщение:
«DllRegisterServer в C:\Program Files\1Cv77\BIN\V7plus.dll завершено успешно».

После чего не стирает информацию из реестра.

Но если запускать отдельные бат файлы:

1.
CD C:\Program Files\1Cv77\BIN
CAll 1cv7s.exe enterprise /D"ПутьКБазе"

И
2.
REG DELETE HKEY_CURRENT_USER\Software\1C\1Cv7\7.7 /f

То никаких сообщений не возникает и система правильно очищает реестр.
38 1C-Nick
 
18.08.10
15:36
(37)напиши так
CD C:\Program Files\1Cv77\BIN
CAll 1cv7s.exe enterprise /D"ПутьКБазе"
ping -n 5 127.0.0.1 > nul
REG DELETE HKEY_CURRENT_USER\Software\1C\1Cv7\7.7 /f
39 Torquader
 
18.08.10
15:55
(34) Я писал сервис, который запускается под определённым пользователем (причём отличным от того, который вошёл), а потом этот процесс запускает 1С - всё нормально работает.
А при остановке сервиса, при завершении работы системы, он просто посылает окну 1С сообщение WM_CLOSE и дожидается, когда процесс 1С будет в завершённом состоянии (WaitForSingleObject(Process1C,...)!=WAIT_TIMEOUT).
Если интересно, могу прислать исходники этого "творчества".

P.S. это была попытка сделать "сервер 1С" для семёрки, но оказалось, что в нём нельзя использовать работу с socket-ами, так как событие в 1С передаётся только через ОбработкаВнешнегоСобытия, а это случается намного позднее, чем надо.
40 sol
 
18.08.10
16:03
(38) Попробовал. не получилось.
Посмотрел в текст исполнения CMD.EXE
После всех команд:

CD C:\Program Files\1Cv77\BIN
CAll 1cv7s.exe enterprise /D"ПутьКБазе"
ping -n 5 127.0.0.1 > nul
REG DELETE HKEY_CURRENT_USER\Software\1C\1Cv7\7.7 /f

Выполняются, непонятно откуда взявшиеся, команды REGSVR32.EXE.
41 Torquader
 
18.08.10
16:31
(40) Чего там понаписано ?
CD "C:\Program Files\1Cv77\Bin\"
START "1Cv7" "C:\Program Files\1Cv77\Bin\1cv7s.exe" Enterprise /D"C:\1S-Base\" /n:UserName
PING ...

А REGSVR32.EXE может исполнять сама 1С при установке внешних компонент.
42 sol
 
18.08.10
16:59
(41) Как уже писал в (37)

CD C:\Program Files\1Cv77\BIN
CAll 1cv7s.exe enterprise /D"ПутьКБазе"
REG DELETE HKEY_CURRENT_USER\Software\1C\1Cv7\7.7 /f

Правильно работает на моем ПК. /nUserName добавлять пробовал - не помогло.

"А REGSVR32.EXE может исполнять сама 1С при установке внешних компонент."

Почему на моем ПК она не исполняет REGSVR32.EXE, а на ПК пользователя исполняет?

Думаете, если заменить CAll на START, то все получится?
43 sol
 
19.08.10
10:37
Решение есть, но, пока, еще кривое.

Вот основной бат-файл:

start 1.bat
pause
start 2.bat

Вот 1-й бат-файл:
CD C:\Program Files\1Cv77\BIN
CAll 1cv7s.exe enterprise /D"ПутьКБазе"

Вот 2-й бат-файл:
REG DELETE HKEY_CURRENT_USER\Software\1C\1Cv7\7.7 /f

После выхода из 1с пользователь должен убрать вручную одно cmd-окно. Потом по приглашению нажать любую клавишу.

Не очень элегантно?
44 filh
 
19.08.10
10:44
(43) а в самой конфе через скрипт чистить реестр при выходе?
45 sol
 
19.08.10
11:00
(44) немного не понял.
Реестр чистится 2-м бат-файлом после того, как пользователь нажмет клавишу.
46 filh
 
19.08.10
11:02
в ПриЗавершенииРаботыСистемы() прописать скрипт на удаление записей в реестре.
47 sol
 
19.08.10
11:17
(46) Теперь понял. Спасибо, но мне пока кажется такое решение несколько витееватым.
48 filh
 
19.08.10
11:19
а через REG RESTORE не пробывал?
49 sol
 
19.08.10
12:38
(48) Для чего? Мне нужно удалить раздел, а не сохранить его в файл.
50 filh
 
19.08.10
12:57
(49) ну так сохраняешь пустой в файл, потом ресторишь его
51 AnoAM
 
19.08.10
13:20
Не читал все посты....
(0)(9) ты начальству объясни что ещё безопаснее не включать комп в принципе.
Как начальство твоё представляет запуск программы "открой ту самую базу, но я не скажу какую - угадай сама". Так или иначе где-то будет храниться данные о каталоге базы: либо в реестре, либо в батнике, либо в reg-файле, либо в ini-шке стартера...
Как вариант - сделать портебл версию через Thinstall чтобы реестр был не виндовый а своя имитация... и раздать всем сотрудникам по флешке.... Но вот с какой скоростью работать будет не могу сказать....
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан