Пользовательские настройки

Кстати: Если под пользователем, после выбора базы, 1С молча вываливается, а под Administrator'ом всё работает - проверьте права доступа на папку с базой (см. пункт 8). Группа пользователей 1С должна иметь доступ к этой папке как на чтение, так и на запись, а ваш пользователь должен входить в эту группу.

Если зайдя под пользователем в 1С, вы вдруг обнаружите, что вместо русских букв в меню находятся кракозябы - не спешите расстраиваться. Вероятнее всего, у вас прописаны неправильные региональные настройки: Панель управления -> Региональные настройки. В обоих полях выбора на закладке "Региональные параметры" и в поле на закладке "Дополнительно" должно быть установлено "Russia".

Hо как обеспечить такие настройки всем пользователям? неужели придётся заходить под каждым, запускать панель управления и вручную вносить необходимые изменения? =8-[] Есть способ лучше! О нём мы расскажем очень скоро..

В профилях пользователей, которые им даёт Win2003 Server по-умолчанию, есть ещё одна фича: по-умолчанию через 10 минут простоя запускается ScreenSaver, который чтобы зайти обратно, начинает требовать пароль. Hам, в случае терминальных сессий, такое было ни к чему. Поэтому кроме региональных настроек, каждому пользователю, было бы не плохо, ещё отключать ScreenSaver.

Как же автоматизировать этот процесс? Оказывается достаточно просто! Hужно воспользоваться утилитой слежения за изменениями в реестре Windows. Самая доступная - regmon - бесплатно скачивается с www.sysinternals.com

После анализа собранных изменений реестра оказалось, что для распространения настроек необходимо:
- полностью перенести ветки:
HKEY_CURRENT_USERControl PanelInternational
HKEY_CURRENT_USERKeyboard Layout
HKEY_CURRENT_USERSoftwareMicrosoftPlus!ThemesApply
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionThemesLastTheme
- в ветке HKEY_CURRENT_USERControl PanelDesktop
провести следующие изменения:
установить ScreenSaveActive = "0"
установить ScreenSaverIsSecure = "1"
установить ScreenSaveTimeOut = "600"
и удалить поле SCRNSAVE.EXE

Поскольку теперь у нас установлены "правильные" настройки, мы можем сделать экспорт этих веток реестра в .REG файл. Сделать это можно с помощью стандартного regedit.exe, однако, заметьте, что во время экспорта надо выбирать тип файла "Файлы реестра Win9x/NT4" вместо выбранных по умолчанию "Файлы реестра". Это нужно для того, чтобы созданный .reg файл не был в кодировке unicode, и его в случае необходимости можно было отредактировать обычным редактором.

После того, как экспорт выполнен, а получившиеся .reg файлы объединены, не забудьте дописать "SCRNSAVE.EXE"="" в секцию [HKEY_CURRENT_USERControl PanelDesktop]. Это хоть и не удалит значение, но хотя бы обнулит его.

У меня получился .reg файл следующего вида:

----------------------------------------------<cut>----------------
REGEDIT4

[HKEY_CURRENT_USERControl PanelInternational]
"iCountry"="7"
"iCurrDigits"="2"
"iCurrency"="1"
"iDate"="1"
"iDigits"="2"
"iLZero"="1"
"iMeasure"="0"
"iNegCurr"="5"
"iTime"="1"
"iTLZero"="0"
"Locale"="00000419"
"s1159"=""
"s2359"=""
"sCountry"="Russia"
"sCurrency"="р."
"sDate"="."
"sDecimal"=","
"sLanguage"="RUS"
"sList"=";"
"sLongDate"="d MMMM yyyy 'г.'"
"sShortDate"="dd.MM.yyyy"
"sThousand"="."
"sTime"=":"
"DefaultBlindDialFlag"=hex:00
"sTimeFormat"="H:mm:ss"
"iTimePrefix"="0"
"sMonDecimalSep"=","
"sMonThousandSep"="."
"iNegNumber"="1"
"sNativeDigits"="0123456789"
"NumShape"="1"
"iCalendarType"="1"
"iFirstDayOfWeek"="0"
"iFirstWeekOfYear"="0"
"sGrouping"="3;0"
"sMonGrouping"="3;0"
"sPositiveSign"=""
"sNegativeSign"="-"

[HKEY_CURRENT_USERControl PanelInternationalGeo]
"Nation"="203"

[HKEY_CURRENT_USERKeyboard Layout]

[HKEY_CURRENT_USERKeyboard LayoutIMEtoggle]

[HKEY_CURRENT_USERKeyboard LayoutIMEtogglescancode]

[HKEY_CURRENT_USERKeyboard LayoutPreload]
"1"="00000409"
"2"="00000419"

[HKEY_CURRENT_USERKeyboard LayoutSubstitutes]

[HKEY_CURRENT_USERKeyboard LayoutToggle]
"Hotkey"="2"
"Language Hotkey"="2"
"Layout Hotkey"="1"

[HKEY_CURRENT_USERControl PanelDesktop]
"SCRNSAVE.EXE"=""
"ScreenSaveActive"="0"
"ScreenSaverIsSecure"="1"
"ScreenSaveTimeOut"="600"

[HKEY_CURRENT_USERSoftwareMicrosoftPlus!ThemesApply]
"Screen saver"="1"
"Sound events"="1"
"Mouse pointers"="1"
"Desktop wallpaper"="1"
"Icons"="1"
"Colors"="1"
"Font names and styles"="1"
"Font and window sizes"="1"
"Rotate theme monthly"="1"

[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionThemesLastTheme]
"ThemeFile"=hex(2):00
"Wallpaper"=hex(2):00
"DisplayName of Modified"="Modified Theme"
----------------------------------------------<cut>----------------

Теперь нужно назначить эти настройки каждому пользователю? Как это сделать быстро, не заходя под каждым пользователем в систему? Могу предложить следующий вариант решения: эти настройки заносятся в реестр пользователя, каждый раз, когда он входит в систему.

Для этого в сценарий запуска 1C.BAT пред строкой START... нужно включить следующую команду:

REGEDIT.EXE /S C:ALL.REG

Ключ /S нужен для того, чтобы RegEdit не задавал глупых вопросов, типа: "Вы действительно хотите добавить информацию из файла ALL.REG в реестр?!"

Теперь пробуем зайти нашим подопытным пользователем (напомню, у него в качестве среды прописан C:1C.BAT). Всё должно получиться. Для проверки предварительно можно внести в ALL.REG какую-нибудь специфическую секцию, например:

[HKEY_CURRENT_USERSoftware2]
"ABC"="X!"

а после захода пользователем выполнить следующие действия:
- зайти в режиме 1С:Предприятия (или 1С:Конфигуратора) в базу
- Меню: Файл -> Открыть
- Перейти в каталог C:WINDOWS
- Вместо имени файла ввести "*.exe" и нажать Enter
- В открывшемся списке выбрать Regedit и щелкнуть по нему правой кнопкой мыши
- В появившемся меню выбрать команду Open
- Запустится редактор реестра
- Посмотрите, добавилась ли ваша сигнальная секция HKEY_CURRENT_USERSoftware2 в реестр?
- Если добавилась - значит всё в порядке.
- Если в реестре такой секции не обнаружено - отлаживайте .bat файл

Кстати: если таким же способом вызвать C:WINDOWSExplorer.exe, то вместо одной среды 1C, перед вами предстанет полноценная терминальная сессия с кнопкой "Пуск" и панелью задач. :-)

Убедившись, что пользовательские настройки подхватываются успешно не забудьте удалить сигнальную секцию из all.reg