Имя: Пароль:
1C
 
Единый список баз у всех пользователей 1С 7.7 и немного о 8.1
0 Mosson
 
06.03.09
08:14
У меня пользователи работают только на терминальных серверах с win2003 (4 штуки), все делалось применительно к этому, но в целом пойдет (с незначительными доработками) и для других вариантов сети.

Начну с простого - 8.1. Список баз пользователя храниться в файле, поэтому сильно не заморачиваемся:
1. Настраиваем желаемый список у одного пользователя
2. находим файлик "C:\Documents and Settings\loninia\Application Data\1C\1Cv81\ibases.v8i" и раскидываем его по всем компутерам, на которых стоит 1С8, примерно вот сюда: "C:\Documents and Settings\Default User\Рабочий стол\1С8_Все_Базы.v8i".  Папки с остальными настройками пользователя будут нормально создаваться при обращении к нужной базе. Процесс раскидывания можно и автоматизировать через netlogon, но у меня всего четыре машины и я раскидал ручками.

3. удалить все штатные ярлычки для запуска 1С8 что-бы шаловливые пальчики юзверей не тыкались куда не надо :)

наслаждаемся.

В 7.7. все гораздо хуже. У кого этих баз больше трех (у меня до 2009 года было далеко за 20... %) ), я думаю, меня поймут :). Каждому новому юзеру необходимо их прописывать ручками, а иногда, вместе с профилем, они ещё и слетают... При настройке переносимого профиля и одновременной работе пользователя на нескольких терминальных серверах с разными базами в 7.7 вообще караул... Нас это порядком достало, в результате родилось следующее:

1. понадобиться какой не то домен с батником запускаемым при логоне. У меня самба, там все просто, а для виндового домена не знаю как делать :(, извиняйте.

в smb.conf  добавим (если такого нет естесно)

logon script = %U.bat

и создадим шару
<pre>[netlogon]
       comment = Network Logon Service
       path = /var/spool/samba/netlogon
       guest ok = yes
       writeable = no</pre>
все остальные файлики будут создаваться/редактироваться в этой-же папке.

2. Создаем  в этой папке файлики &lt;имя пользователя&gt;.bat следующего содержания либо просто добавляем в имеющиеся файлы красную строчку.
@echo off
net     time    /workgroup:apksouz      -y      /set

net     use     h:                      \\samba\homes
net     use     o:                      \\samba\pub
net     use     t:                      \\samba\temp

<span style="color: #ff0000;">cscript \\samba\netlogon\StartInitBases.vbs</span>

3. Теперь создаем скрипт StartInitBases.vbs
<pre>'===============================Скрипт инициализации баз 1с=========================
'====Удаляет все базы в файле Del1cBases_&lt;Имя машины&gt;.txt====
'====В зависимости от машины добавляет все базы из файла Add1cBases_&lt;Имя машины&gt;.txt====
'===================================Сам скрипт====================================
'Создадим объекты
const HKEY_CURRENT_USER = &amp;H80000001
Set WshNetwork = CreateObject("WScript.Network")
set WSHShell = WScript.CreateObject("WScript.Shell")
Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")

Set objFSO = CreateObject("Scripting.FileSystemObject")
'Откроем файл только для чтения
Set Del1cBasesStream = objFSO.OpenTextFile("\\samba\netlogon\Del1cBases_" + ucase(Trim(WshNetwork.Comp
uterName)) + ".txt", 1, True)
'Откроем файл только для чтения
Set Add1cBasesStream = objFSO.OpenTextFile("\\samba\netlogon\Add1cBases_" + ucase(Trim(WshNetwork.Comp
uterName)) + ".txt", 1, True)

'========= Удаляем все базы которые есть в файлике =========
Do While Not Del1cBasesStream.AtEndOfStream
   strTxtLine = Del1cBasesStream.ReadLine + "\"

   'msgbox "Del "+ strTxtLine
   On Error Resume Next
   WshShell.Run "REG DELETE HKCU\Software\1C\1Cv7\7.7\Titles /v """ &amp; strTxtLine &amp; "\"" /f", 0, True

Loop

'========= Добавляем все базы которые есть в файлике =========
Do While Not Add1cBasesStream.AtEndOfStream
   strTxtLineNameBase = Add1cBasesStream.ReadLine
   strTxtLinePathBase = Add1cBasesStream.ReadLine + "\"

   'msgbox "Add "+ strTxtLineNameBase
   On Error Resume Next
   WshShell.Run "REG ADD HKCU\Software\1C\1Cv7\7.7\Titles /v """ &amp; strTxtLinePathBase &amp; "\"" /t REG_SZ /d """ &amp; st
rTxtLineNameBase &amp; """ /f", 0, True
Loop</pre>
4. Теперь создаем файлы для каждого сервера. приведу пример самого короткого :)

4а. Del1cBases_XEON4.txt - в нем может быть больше строк что-бы зачистить старые базы созданные когда-то.
\\Fdir2\ASKID
C:\1CBases\Base2006
C:\1CBases\Base2005
C:\1CBases\Plateshi
C:\1CBases\Base2007AVZM7
\\Fdir\ASKID
C:\1CBases\Base2008

4б. Add1cBases_XEON4.txt - а здесь только то, что должно появиться у пользователя. По две строки на одну базу. В первой название, во второй путь. Кодировка CP-1251.
Комплектация 2006-2007
C:\1CBases\Base2006
Комплектация 2005
C:\1CBases\Base2005
Платежи
C:\1CBases\Plateshi
!Карты коннтроля
\\Fdir2\ASKID
Комплектация 2008
C:\1CBases\Base2008
Комплектация 2009
C:\1CBases\Base2009
Комплектация Атест
C:\1ctemp\BaseAttestacia

Выгоняем всех пользователей. Пускаем обратно и наслаждаемся :)

<span style="color: #ff6600;">Есть Очень важный момент:  у меня рабочий стол появляется раньше, чем успевает отработать скрипт!!! Если пользователь быстро тычит в значек 1С, то список баз может быть пустым или неполным. <span style="color: #000000;">Лечиться: logoff/logon и объяснить юзверю, что надо подождать 5-10 секунд перед запуском 1С.</span>
</span>
1 Mosson
 
06.03.09
08:18
блин как обычно забыл :(. довесок:
ссылка на оригинал http://www.itdepartament.ru/index.php/archives/86
сори за теги HTML. хотел как лучше, а они не сработали :)
Автор VB скриптов DGorgoN, остальное от меня.
2 Если
 
06.03.09
08:20
Возьми стартер Ромикса, там список баз в ини файле хранить можно, плюс еще несколько хороших вещей типа выгонялки для пользователей, и ждать не надо.
3 Mosson
 
06.03.09
08:23
(2) а ссылкой можно?
4 Если
 
06.03.09
08:26
(3) Счас пошукаю.
5 Если
 
06.03.09
08:27
http://x-romix.narod.ru/
Там есть
6 Mosson
 
06.03.09
08:41
по порядку:
1. MD_FREE (с) Romix можно и отдельно прикрутить (я себе поставил)
2. дело вкуса использовать отдельную прогу или ставить скрипт по редактированию реестра ;). пусть народ знает оба способа.
7 Если
 
06.03.09
08:42
(6) Согласен, это я так.:)
8 revolt
 
06.03.09
09:15
очень удобно, штатные возможности винды, ничего лишнего ставить не нужно
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс