При администрировании терминальных серверов (например, на базе Windows Server 2008 R2 и более современных версий) перед системным администратором часто возникает задача: выяснить, какие именно информационные базы подключены у конкретных пользователей. Это необходимо для проведения аудита, переноса настроек, удаления неактуальных путей или централизованного обновления списков баз.
В этой статье мы подробно рассмотрим, где именно платформа 1С:Предприятие хранит свои конфигурационные файлы, проанализируем структуру этих файлов и разберем несколько практических способов мониторинга и администрирования списков баз для всех пользователей терминального сервера.
Платформа 1С:Предприятие 8 разработана таким образом, что по умолчанию хранит индивидуальные настройки каждого пользователя в его личном профиле операционной системы. Список баз представляет собой обычный текстовый файл в кодировке UTF-8 с расширением .v8i.
Рассмотрим точные пути к файлам конфигурации в зависимости от операционной системы:
C:\Users\%username%\AppData\Roaming\1C\1CEStart\ibases.v8iC:\Users\%username%\AppData\Roaming\1C\1CEStart\1CEStart.cfgC:\ProgramData\1C\1CEStart\1CEStart.cfgC:\Documents and Settings\%username%\Application Data\1C\1CEstart\ibases.v8i~/.1C/1cestart/ibases.v8i~/.1C/1cestart/ibases.v8iОбратите внимание на устаревшую версию 1С 7.7: Если на вашем сервере до сих пор эксплуатируется легендарная «семерка», то там списки баз хранятся не в файлах профиля, а непосредственно в системном реестре Windows. Путь к ветке реестра для текущего пользователя выглядит следующим образом: HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles.
Давайте проанализируем структуру файла ibases.v8i. Понимание его устройства позволит нам вручную или автоматически генерировать нужные параметры подключения. Каждая база в файле описывается отдельным блоком конфигурации, ограниченным квадратными скобками, в которых указано видимое имя базы.
Посмотрим на типичный пример содержимого файла ibases.v8i:
[Бухгалтерия Предприятия]
Connect=File="D:\1C_Bases\Accounting";
ID=8f7f502c-4b6a-4b96-bc94-39871bb5d2bf
OrderInList=16384
Folder=/
OrderInTree=16384
App=Auto
WA=1
Version=8.3
Разберем основные параметры, которые здесь используются:
File="...", для клиент-серверного (SQL) — параметры сервера приложений 1С и имя базы в кластере: Srvr="ServerName";Ref="BaseName";.Folder=/Бухгалтерия/Рабочие).Auto — автоматически, ThickClient — толстый клиент, ThinClient — тонкий клиент).1 — включено, 0 — отключено).Когда пользователи работают в терминальной сессии, заходить под учетной записью каждого из них крайне неэффективно. Рассмотрим эффективные способы получения этой информации с правами администратора сервера.
Способ 1: Использование сценария PowerShell
Мы можем написать несложный скрипт на PowerShell, который обойдет папки профилей всех зарегистрированных на сервере пользователей, проверит наличие файла настроек 1С и выведет имя пользователя вместе со списком его баз. Запустите консоль PowerShell от имени Администратора и выполните следующий код:
$UsersPath = "C:\Users"
$UserDirs = Get-ChildItem -Path $UsersPath -Directory
foreach ($UserDir in $UserDirs) {
$IbasesPath = Join-Path $UserDir.FullName "AppData\Roaming\1C\1CEStart\ibases.v8i"
if (Test-Path $IbasesPath) {
Write-Host "=========================================" -ForegroundColor Cyan
Write-Host "ПОЛЬЗОВАТЕЛЬ: $($UserDir.Name)" -ForegroundColor Yellow
Write-Host "=========================================" -ForegroundColor Cyan
# Выбираем строки с названиями баз и путями подключения
Get-Content $IbasesPath | Where-Object { $_ -match "^\[" -or $_ -match "^Connect=" } | ForEach-Object {
if ($_ -match "^\[") {
Write-Host "База: $_" -ForegroundColor Green
} else {
Write-Host " $_" -ForegroundColor White
}
}
Write-Host ""
}
}
Этот скрипт мгновенно соберет со всего сервера актуальную информацию по путям баз, избавив вас от необходимости ручного поиска.
Способ 2: Подключение списков пользователей в своем окне запуска 1С
Если вы хотите визуально наблюдать списки баз ваших сотрудников в стандартном диалоговом окне запуска 1С, вы можете подключить их файлы ibases.v8i как дополнительные (общие) списки баз. Для этого выполните следующие действия:
C:\Users\Ivanov\AppData\Roaming\1C\1CEStart\ibases.v8i.После сохранения настроек в вашем окне запуска появится дерево папок, соответствующее спискам баз выбранного сотрудника. При этом изменения, которые вносит пользователь, будут автоматически отображаться у вас.
Чтобы избежать хаоса, когда пользователи самостоятельно добавляют, переименовывают или случайно удаляют базы из списков, рекомендуется использовать централизованные методы управления.
Мы можем создать единую сетевую папку или локальный каталог на сервере (например, C:\1C_Common_Settings\), в котором разместим файлы списков баз для разных отделов: buh.v8i, sales.v8i, sklad.v8i.
Затем настроим права доступа на уровне файловой системы Windows (NTFS) или через Active Directory:
buh.v8i.sales.v8i.После этого отредактируем общий конфигурационный файл C:\ProgramData\1C\1CEStart\1CEStart.cfg на терминальном сервере, добавив в него следующие строки:
CommonInfoBases=C:\1C_Common_Settings\buh.v8i
CommonInfoBases=C:\1C_Common_Settings\sales.v8i
CommonInfoBases=C:\1C_Common_Settings\sklad.v8i
При запуске платформа 1С автоматически прочитает этот файл конфигурации. Если у текущего пользователя операционной системы нет прав NTFS на чтение файла buh.v8i, платформа просто проигнорирует эту строчку, и пользователь увидит только те базы, которые ему разрешены. Этот метод чрезвычайно прост, надежен и не требует программирования.
Для крупных компаний с распределенной инфраструктурой или большим количеством удаленных сотрудников идеально подходит механизм публикации списков баз по протоколам HTTP/HTTPS.
Для этого в общем файле 1CEStart.cfg прописывается специальный параметр:
UseWebCommonInfoBases=1
WebCommonInfoBases=https://webserver.company.local/1c_lists/get_bases.xml
Веб-сервер в ответ на этот запрос должен отдавать XML-файл определенной структуры, в котором описаны доступные базы. Платформа 1С скачает его при запуске и построит актуальное дерево баз. Это позволяет администраторам менять настройки баз в одном месте на веб-сервере, и изменения мгновенно вступят в силу у всех пользователей даже вне корпоративной сети.