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

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

Александр Рудницкий
Александр Рудницкий
Программист 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%

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