Написать пост

Управление общим списком баз 1С на терминальном сервере

Аватарка пользователя Alexander Rudnitsky

Как добавить пользователям терминального сервера параметры баз для запуска 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 пользователей.

Создаём список баз:

Управление общим списком баз 1С на терминальном сервере 1

Копируем созданный список баз в общую, доступную для всех пользователей, директорию – тот самый список баз в директории %AppData%\1C\1CEStart с именем ibases.V8I

Управление общим списком баз 1С на терминальном сервере 2

Третьим шагом будет добавление в файл “C:\ProgramData\1C\1CEStart\1CEStart.cfg” пути к общему списку баз: CommonInfoBases=E:\BaseList\ibases.v8i

Управление общим списком баз 1С на терминальном сервере 3

Готово. Теперь при входе в систему у пользователя будет одинаковый список баз. Не нужно объяснять пользователю, как добавить базу, уточнять параметры и ставить галочки — всё уже есть.

Если требуется массово изменить имя базы или имя сервера, или другой параметр базы, это делается в одном файле ibases.V8I один раз. В случае, когда принципиально нужно поставить на рабочий стол список баз, это можно сделать следующим образом:

  • Открыть командную строку от имени администратора, запустить редактор локальной групповой политики: gpedit.
  • В дереве выбрать «Конфигурация пользователя –> Конфигурация Windows –> Административные шаблоны –> Система –> Вход в систему –> Выполнять эти программы при входе в систему».
  • Указать команду или путь к bat-файлу:

@echo off

mkdir %UserProfile%\Desktop

copy E:\BaseList\ibases.V8I %UserProfile%\Desktop\ibases.V8I

Управление общим списком баз 1С на терминальном сервере 4
  • И далее обновить политику: gpupdate /force.
Управление общим списком баз 1С на терминальном сервере 5

Если нужно, чтобы список баз отображался в виде дерева (иерархией), действия следующие:

  • Настраиваем список на отображение в виде дерева.
  • Копируем файл %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%

Примечание: если сервер находится в домене, то локальная политика не сработает, нужно прописывать доменную политику.

Следите за новыми постами
Следите за новыми постами по любимым темам
18К открытий19К показов