Кстати: Если под пользователем, после выбора базы, 1С молча вываливается, а под Administrator'ом всё работает - проверьте права доступа на папку с базой (см. пункт 8). Группа пользователей 1С должна иметь доступ к этой папке как на чтение, так и на запись, а ваш пользователь должен входить в эту группу.
Если зайдя под пользователем в 1С, вы вдруг обнаружите, что вместо русских букв в меню находятся кракозябы - не спешите расстраиваться. Вероятнее всего, у вас прописаны неправильные региональные настройки:
Панель управления -> Региональные настройки
в обоих полях выбора на закладке "Региональные параметры" и
в поле на закладке "Дополнительно" должно быть установлено "Russia".
Но как обеспечить такие настройки всем пользователям? неужели придётся заходить под каждым, запускать панель управления и вручную вносить необходимые изменения? =8-[] Есть способ лучше! О нём мы расскажем очень скоро.
В профилях пользователей, которые им даёт Win2003 Server по-умолчанию, есть ещё одна фича: по-умолчанию через 10 минут простоя запускается ScreenSaver, который чтобы зайти обратно, начинает требовать пароль. Нам, в случае терминальных сессий, такое было ни к чему. Поэтому кроме региональных настроек, каждому пользователю, было бы не плохо, ещё отключать ScreenSaver.
Как же автоматизировать этот процесс? Оказывается достаточно просто! Нужно воспользоваться утилитой слежения за изменениями в реестре Windows. Самая доступная - regmon - бесплатно скачивается с http://www.sysinternals.com/
заходите под Administrator'ом, устанавливаете настройки в первоначальное "неправильное" состояние.
запускаем утилиту regmon
устанавливаем фильтр записей: только "Log Writes" и "Log Successed"
запускаем процесс слежения
"исправляем" региональные настройки и настройки ScreenSaver'а
останавливаем слежение
внимательно разбираем собранный журнал изменений реестра.
После анализа собранных изменений реестра оказалось, что для распространения настроек необходимо:
полностью перенести ветки:
HKEY_CURRENT_USER\Control Panel\International HKEY_CURRENT_USER\Keyboard Layout HKEY_CURRENT_USER\Software\Microsoft\Plus!\Themes\Apply HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\LastTheme в ветке HKEY_CURRENT_USER\Control Panel\Desktop
в ветке HKEY_CURRENT_USER\Control Panel\Desktop провести следующие изменения:
установить ScreenSaveActive = "0" установить ScreenSaverIsSecure = "1" установить ScreenSaveTimeOut = "600" и удалить поле SCRNSAVE.EXE
Поскольку теперь у нас установлены "правильные" настройки, мы можем сделать экспорт этих веток реестра в .REG файл. Сделать это можно с помощью стандартного regedit.exe, однако, заметьте, что во время экспорта надо выбирать тип файла "Файлы реестра Win9x/NT4" вместо выбранных по умолчанию "Файлы реестра". Это нужно для того, чтобы созданный .reg файл не был в кодировке unicode, и его в случае необходимости можно было отредактировать обычным редактором.
После того, как экспорт выполнен, а получившиеся .reg файлы объединены, не забудьте дописать "SCRNSAVE.EXE"="" в секцию [HKEY_CURRENT_USER\Control Panel\Desktop]. Это хоть и не удалит значение, но хотя бы обнулит его.
У меня получился .reg файл следующего вида:
REGEDIT4 [HKEY_CURRENT_USER\Control Panel\International] "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_USER\Control Panel\International\Geo] "Nation"="203" [HKEY_CURRENT_USER\Keyboard Layout] [HKEY_CURRENT_USER\Keyboard Layout\IMEtoggle] [HKEY_CURRENT_USER\Keyboard Layout\IMEtoggle\scancode] [HKEY_CURRENT_USER\Keyboard Layout\Preload] "1"="00000409" "2"="00000419" [HKEY_CURRENT_USER\Keyboard Layout\Substitutes] [HKEY_CURRENT_USER\Keyboard Layout\Toggle] "Hotkey"="2" "Language Hotkey"="2" "Layout Hotkey"="1" [HKEY_CURRENT_USER\Control Panel\Desktop] "SCRNSAVE.EXE"="" "ScreenSaveActive"="0" "ScreenSaverIsSecure"="1" "ScreenSaveTimeOut"="600" [HKEY_CURRENT_USER\Software\Microsoft\Plus!\Themes\Apply] "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_USER\Software\Microsoft\Windows\CurrentVersion\Themes\LastTheme] "ThemeFile"=hex(2):00 "Wallpaper"=hex(2):00 "DisplayName of Modified"="Modified Theme"
Теперь нужно назначить эти настройки каждому пользователю? Как это сделать быстро, не заходя под каждым пользователем в систему? Могу предложить следующий вариант решения: эти настройки заносятся в реестр пользователя, каждый раз, когда он входит в систему.
Для этого в сценарий запуска 1C.BAT пред строкой START... нужно включить следующую команду:
REGEDIT.EXE /S C:\ALL.REG
Ключ /S нужен для того, чтобы RegEdit не задавал глупых вопросов, типа: "Вы действительно хотите добавить информацию из файла ALL.REG в реестр?!"
Теперь пробуем зайти нашим подопытным пользователем (напомню, у него в качестве среды прописан C:\1C.BAT). Всё должно получиться. Для проверки предварительно можно внести в ALL.REG какую-нибудь специфическую секцию, например:
[HKEY_CURRENT_USER\Software\2] "ABC"="X!"
а после захода пользователем выполнить следующие действия:
зайти в режиме 1С:Предприятия (или 1С:Конфигуратора) в базу
Меню: Файл -> Открыть
Перейти в каталог C:\WINDOWS
Вместо имени файла ввести "*.exe" и нажать Enter
В открывшемся списке выбрать Regedit и щелкнуть по нему правой кнопкой мыши
В появившемся меню выбрать команду Open
Запустится редактор реестра
Посмотрите, добавилась ли ваша сигнальная секция HKEY_CURRENT_USER\Software\2 в реестр?
Если добавилась - значит всё в порядке.
Если в реестре такой секции не обнаружено - отлаживайте .bat файл
Кстати: если таким же способом вызвать C:\WINDOWS\Explorer.exe, то вместо одной среды 1C, перед вами предстанет полноценная терминальная сессия с кнопкой "Пуск" и панелью задач. :-)
Убедившись, что пользовательские настройки подхватываются успешно не забудьте удалить сигнальную секцию из all.reg