В крупных и средних организациях системные администраторы часто сталкиваются с задачей централизованного управления списками информационных баз 1С. Когда появляется новая база, добавлять ее вручную каждому сотруднику на рабочее место — неэффективно и трудоемко. Ситуация осложняется тем, что у многих пользователей уже есть собственные списки баз, добавленные ими вручную. Простая замена конфигурационных файлов сотрет пользовательские настройки, что вызовет волну обращений в техническую поддержку.
В этой статье мы подробно разберем, как устроена архитектура конфигурационных файлов запуска 1С, и рассмотрим несколько надежных способов удаленного добавления баз в домене Active Directory (AD). Мы научимся подключать общие списки, использовать групповые политики (GPO), автоматизировать процесс с помощью скриптов PowerShell, а также раздавать списки по протоколу HTTP без необходимости приобретения дорогостоящих КОРП-лицензий.
Прежде чем приступать к автоматизации, проанализируем, как платформа 1С:Предприятие хранит списки баз и параметры запуска. За это отвечают файлы двух типов:
ibases.v8i — текстовый файл, в котором хранятся описания информационных баз (их имена, адреса серверов или пути к каталогам, параметры запуска и сортировки). По умолчанию личный файл пользователя располагается по пути: %AppData%\1C\1CEStart\ibases.v8i.1cestart.cfg — файл конфигурации программы запуска (стартера). Он указывает стартеру, где искать платформу, какие версии использовать и откуда подгружать общие списки баз.Платформа 1С использует иерархическую модель считывания настроек. При запуске программы стартер сначала считывает общий (глобальный) файл конфигурации, который расположен в папке %ProgramData%\1C\1CEStart\1cestart.cfg (для всех пользователей данного компьютера), а затем — личный файл из профиля пользователя %AppData%\1C\1CEStart\1cestart.cfg.
Важнейшее свойство механизма: если мы пропишем ссылку на общий список баз в глобальном файле 1cestart.cfg, то базы из этого списка просто объединятся (добавятся) в окне запуска с личными базами пользователя. При этом личный файл ibases.v8i не перезаписывается, и все созданные пользователем вручную базы остаются в целости и сохранности. Это свойство мы и будем использовать.
Рассмотрим по шагам классический способ публикации баз через групповые политики Active Directory с использованием общего сетевого ресурса. Этот метод идеально подходит для локальной сети организации.
Шаг 1. Создание общего файла баз (.v8i)
Для начала подготовим эталонный файл со списком баз, которые должны появиться у сотрудников. Для этого настроим список баз на своем компьютере, после чего перейдем в папку %AppData%\1C\1CEStart\ и скопируем оттуда файл ibases.v8i. Переименуем его, например, в common.v8i.
Откроем его в текстовом редакторе и оставим только те базы, которые мы хотим распространить. Структура описания базы выглядит следующим образом:
[Бухгалтерия предприятия (общая)]
Connect=Srvr="1c-server";Ref="buh_prod";
ID=a5b6c7d8-e9f0-1234-5678-9abcdef01234
OrderInList=16384
Folder=/
OrderInTree=16384
App=Auto
WA=1
Выложим файл common.v8i на сетевой ресурс, доступный всем пользователям домена на чтение (например, \\domain.local\DFS\1C\common.v8i).
Шаг 2. Создание глобального конфигурационного файла стартера
Создадим на своем рабочем столе текстовый файл и назовем его 1cestart.cfg. Запишем в него одну единственную строку, указывающую на наш сетевой файл:
CommonInfoBases=\\domain.local\DFS\1C\common.v8i
Шаг 3. Настройка групповой политики (GPO)
Теперь настроим автоматическое копирование файла 1cestart.cfg на все компьютеры домена. Поскольку путь %ProgramData% одинаков для всех современных версий ОС Windows (начиная с Windows 7 и заканчивая Windows 11 / Server 2022), нам не придется беспокоиться о различных именах пользователей в путях к профилям.
gpmc.msc.1cestart.cfg на сетевом ресурсе.%ProgramData%\1C\1CEStart\1cestart.cfg.После применения групповой политики на компьютерах пользователей появится указанный файл. При следующем запуске 1С пользователи увидят новые базы, при этом их личные базы останутся на месте.
В обсуждениях часто упоминается веб-сервис списка информационных баз. Официальный «Интернет-сервис списков баз» (WebCommonInfoBases) действительно требует наличия дорогостоящих КОРП-лицензий. Однако существует прекрасная альтернатива, которая отлично работает на обычных ПРОФ-лицензиях.
Мало кто знает, что параметр CommonInfoBases в файле конфигурации стартера умеет работать не только с UNC-путями локальной сети, но и со стандартными протоколами HTTP и HTTPS! Это идеальное решение для удаленных сотрудников, работающих без VPN.
Алгоритм настройки:
common.v8i на любой имеющийся веб-сервер внутри организации (это может быть IIS, Apache или Nginx). Например, по адресу https://web.company.ru/1c/common.v8i.1cestart.cfg пропишем эту веб-ссылку:
CommonInfoBases=https://web.company.ru/1c/common.v8i
При запуске стартер 1С выполнит обычный HTTP-запрос, скачает файл списка баз во временный кэш компьютера и отобразит эти базы пользователю. Лицензия КОРП для этого не требуется, так как платформа не использует специализированный веб-сервис 1С, а просто скачивает статический текстовый файл.
Часто возникает ситуация, когда разным отделам требуются разные наборы баз: бухгалтерии — регламентированный учет, отделу продаж — управление торговлей. Мы можем гибко настроить раздачу баз с помощью механизма нацеливания на уровень элемента (Item-Level Targeting) в GPP.
Выясним, как это реализовать:
1C_Buh_Users и 1C_Sales_Users. Добавим в них соответствующих пользователей.buh.v8i и sales.v8i.1cestart.cfg, но в параметрах укажем целевой путь к профилю пользователя: %AppData%\1C\1CEStart\1cestart.cfg.1C_Buh_Users. Для этого правила исходным файлом укажем конфигурационный файл, ссылающийся на buh.v8i.1C_Sales_Users и указав файл, ссылающийся на sales.v8i.В результате пользователи получат только те списки баз, которые соответствуют их ролям в Active Directory.
Если нам необходимо разово добавить конкретную базу непосредственно в личные файлы ibases.v8i пользователей (например, на сервере терминалов RDS, где работают десятки пользователей, и мы не хотим использовать механизм общих списков), мы можем применить скрипт PowerShell.
Проанализируем скрипт, который находит профили всех пользователей на сервере, проверяет наличие файла ibases.v8i и безопасно дописывает параметры новой базы в самый конец файла, если этой базы там еще нет.
# Шаблон параметров новой базы для добавления
$NewBaseBlock = @"
[Новая Управленческая База]
Connect=Srvr="1c-srv";Ref="management_prod";
ID=e1b2c3d4-5678-90ab-cdef-1234567890fe
OrderInList=16384
Folder=/
OrderInTree=16384
App=Auto
WA=1
"@
# Получаем список всех папок пользователей на диске C:
$UserProfiles = Get-ChildItem -Path "C:\Users" -Directory
foreach ($Profile in $UserProfiles) {
$v8iPath = Join-Path $Profile.FullName "AppData\Roaming\1C\1CEStart\ibases.v8i"
# Проверяем, существует ли файл списков баз у данного пользователя
if (Test-Path $v8iPath) {
$Content = Get-Content -Path $v8iPath -Raw
# Проверяем, не была ли эта база добавлена ранее по ее уникальному ID или имени
if ($Content -notmatch "management_prod") {
# Дописываем блок в конец файла с добавлением новой строки
Add-Content -Path $v8iPath -Value $NewBaseBlock -Encoding UTF8
Write-Host "База успешно добавлена в профиль: $($Profile.Name)" -ForegroundColor Green
} else {
Write-Host "База уже присутствует у пользователя: $($Profile.Name)" -ForegroundColor Yellow
}
}
}
Этот скрипт можно запускать как задачу планировщика Windows от имени администратора (SYSTEM) при запуске сервера или выполнять его разово во время проведения регламентных работ.
Если перед нами стоит простая задача — предоставить доступ к одной конкретной базе без редактирования конфигурационных файлов 1С, мы можем использовать механизм ярлыков.
"C:\Program Files\1cv8\common\1cestart.exe" (путь к общему стартеру платформы).ENTERPRISE /S "1c-server\buh_prod" (для клиент-серверного варианта) или ENTERPRISE /F "C:\1C_Bases\Buh" (для файлового варианта).Пользователю не потребуется открывать окно выбора баз — при клике на ярлык платформа сразу запустит нужную информационную базу под его доменными учетными данными (если настроена сквозная Windows-авторизация WA=1).
Мы рассмотрели различные варианты решения задачи. Какой из них выбрать?
.v8i файла на HTTP-сервере). Это сэкономит бюджет на КОРП-лицензиях и обеспечит стабильное обновление списков.