Управление общим списком баз 1С на терминальном сервере
Как добавить пользователям терминального сервера параметры баз для запуска 1С, не подключаясь к сеансу пользователя и не зная его пароля.

Допустим, вам нужно добавить пользователям терминального сервера параметры информационных баз для запуска 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%
Примечание: если сервер находится в домене, то локальная политика не сработает, нужно прописывать доменную политику.