Управление общим списком баз 1С на терминальном сервере
Допустим, вам нужно добавить пользователям терминального сервера параметры информационных баз для запуска 1С, не подключаясь к сеансу пользователя и не зная пароля пользователя. Рассказываем, как это сделать.
21К открытий23К показов
Александр Рудницкий
Программист 1С компании CorpSoft24
Допустим, вам нужно добавить пользователям терминального сервера параметры информационных баз для запуска 1С, не подключаясь к сеансу пользователя и не зная пароля пользователя. Рассказываем, как это сделать.
В 1С все данные о списках баз хранятся в обычных текстовых, читаемых файлах с расширениями .cfg и .v8i, в кодировке utf-8. Как правило, у пользователей на компьютере 1С 8 хранит файлы списков баз в каталогах Профиль всех пользователей: C:\ProgramData\1C\1CEStart\ и Профиль пользователя: С:\Documents and Settings\%username%\Application Data\1C\1CEstart\ (или C:\Users\%username%\AppData\Roaming\1C\1CEStart\).
Содержимое профиля пользователя — два файла: 1CEStart.cfg и ibases.v8i. Содержимое директории профиля всех пользователей — только один 1CEStart.cfg.
При запуске 1С берёт список баз к представлению в файле пользователя, но предварительно читает настройки сначала из профиля всех пользователей C:\ProgramData\1C\1CEStart\1CEStart.cfg, а потом и из профиля пользователя C:\Users\%username%\AppData\Roaming\1C\1CEStart\1CEStart.cfg, и если в них есть ссылки на конфигурационные базы в сети, то добавляет их в этот файл.
Например, нам нужно, чтобы на терминальном сервере Windows Server 2012 R2 Standard обеспечивалась работа около 100 пользователей.
Создаём список баз:
Копируем созданный список баз в общую, доступную для всех пользователей, директорию – тот самый список баз в директории %AppData%\1C\1CEStart с именем ibases.V8I
Третьим шагом будет добавление в файл “C:\ProgramData\1C\1CEStart\1CEStart.cfg” пути к общему списку баз: CommonInfoBases=E:\BaseList\ibases.v8i
Готово. Теперь при входе в систему у пользователя будет одинаковый список баз. Не нужно объяснять пользователю, как добавить базу, уточнять параметры и ставить галочки — всё уже есть.
Если требуется массово изменить имя базы или имя сервера, или другой параметр базы, это делается в одном файле ibases.V8I один раз. В случае, когда принципиально нужно поставить на рабочий стол список баз, это можно сделать следующим образом:
- Открыть командную строку от имени администратора, запустить редактор локальной групповой политики: gpedit.
- В дереве выбрать «Конфигурация пользователя –> Конфигурация Windows –> Административные шаблоны –> Система –> Вход в систему –> Выполнять эти программы при входе в систему».
- Указать команду или путь к bat-файлу:
@echo off
mkdir %UserProfile%\Desktop
copy E:\BaseList\ibases.V8I %UserProfile%\Desktop\ibases.V8I
- И далее обновить политику: gpupdate /force.
Если нужно, чтобы список баз отображался в виде дерева (иерархией), действия следующие:
- Настраиваем список на отображение в виде дерева.
- Копируем файл %UserProfile%\AppData\Roaming\1C\1cv8\1cv8strt.pfl в общую директорию, например, туда же: E:\BaseList\1cv8strt.pfl.
- Открываем командную строку от имени администратора, запускаем редактор локальной групповой политики: gpedit.
- В дереве выбрать «Конфигурация пользователя –> Конфигурация Windows –> Административные шаблоны –> Система –> Вход в систему –> Выполнять эти программы при входе в систему».
- Указать команду или путь к bat-файлу:
@echo off
mkdir %UserProfile%\AppData\Roaming\1C\1cv8
copy E:\BaseList\1cv8strt.pfl %UserProfile%\AppData\Roaming\1C\1cv8\1cv8strt.pfl
Если же требуется лишь заменить строчку с настройкой дерева в указанном файле, то указать путь к bat-файлу:
@echo off
setlocal enabledelayedexpansion
Set infile=%UserProfile%\AppData\Roaming\1C\1cv8\1cv8strt.pfl
Set find={"B",0},"AutoSortIBs",
Set replace={"B",1},"AutoSortIBs",
@echo off
setlocal enabledelayedexpansion
set COUNT=0
for /F "tokens=* delims=," %%n in (!infile!) do (
set LINE=%%n
set TMPR=!LINE:%find%=%replace%!
Echo !TMPR!>>TMP.TXT
)
del %infile%
move TMP.TXT %infile%
Примечание: если сервер находится в домене, то локальная политика не сработает, нужно прописывать доменную политику.
21К открытий23К показов