Где посмотреть GUID информационной базы в кластере 1С
Содержание
Идентификатор базы 1С на сервере быстрее всего узнать командой rac infobase --cluster=<GUID кластера> summary list: в строке infobase будет GUID, а в строке name — имя базы. Второй способ, когда нет утилиты: открыть каталог srvinfo\reg_1541 на сервере. Каждая подпапка с длинным именем вида 8f3c2a1e-... — это GUID одной из баз кластера.
Типичная ситуация: техподдержка просит прислать журнал регистрации базы buh_main. Вы заходите на сервер, а там два десятка папок с одинаково нечитаемыми именами. Чтобы взять нужную, придётся сопоставить имя базы с её идентификатором. Ниже все рабочие способы, от самого надёжного до запасных.
Что такое GUID базы в кластере и зачем он нужен
Когда базу регистрируют в кластере серверов 1С:Предприятия, кластер присваивает ей уникальный идентификатор. Это GUID из 32 шестнадцатеричных символов в формате xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Пользователи его не видят: при подключении они указывают сервер и имя базы.
Идентификатор понадобится администратору в таких случаях:
- 📁 найти журнал регистрации базы — он лежит в папке
<GUID базы>\1Cv8Logвнутри каталога кластера; - 🧹 почистить серверные служебные файлы конкретной базы, не трогая остальные;
- 🖥 управлять базой из командной строки через
rac— почти все команды по базе требуют--infobase=<GUID>; - 🔍 разобрать список сеансов или соединений, где база указана идентификатором, а не именем;
- 📨 передать данные в техподдержку или подрядчику по сопровождению.
У кластера тоже есть свой GUID, и у рабочего сервера — свой. Путать их нельзя: команды rac для базы ждут сначала GUID кластера, потом GUID самой базы.
У файловой базы кластерного идентификатора нет. Он появляется только у баз, зарегистрированных на сервере 1С.
Что видно в консоли администрирования серверов
Консоль «Администрирование серверов 1С Предприятия» — первое, что открывают администраторы. Путь в дереве: Central 1C:Enterprise 8.3 servers → <имя сервера> → Кластеры → <кластер> → Информационные базы.
В окне свойств базы консоль показывает:
- имя и описание базы;
- тип СУБД и сервер баз данных;
- имя базы данных на сервере СУБД;
- пользователя СУБД;
- настройки блокировки сеансов и регламентных заданий.
GUID отдельным полем в окне свойств не выводится. Поэтому консоль на этом шаге нужна для другого: уточнить точное имя базы, номер порта кластера (по умолчанию 1541) и имя базы в СУБД. Эти три значения пригодятся дальше.
Порт кластера определяет имя каталога: для кластера на порту 1541 это reg_1541, для кластера на порту 2541 — reg_2541. Если на сервере несколько кластеров, без этой детали легко искать папку не там.
Если консоль не открывается или пишет ошибку подключения, проверьте, что запущена служба агента сервера 1С. Консоль подключается к агенту, по умолчанию на порт 1540.
Как узнать идентификатор базы 1С через rac
Утилита rac — самый точный способ. Она лежит в каталоге платформы рядом с 1cv8.exe: в Windows это C:\Program Files\1cv8\<версия>\bin\rac.exe, в Linux — /opt/1cv8/x86_64/<версия>/rac.
Шаг 1. Запустите сервер администрирования ras
rac работает не напрямую с кластером, а через сервер администрирования ras. По умолчанию он слушает порт 1545. Проверьте, запущен ли он:
- в Windows — найдите в списке служб службу сервера администрирования или процесс
ras.exeв диспетчере задач; - в Linux — выполните
ps aux | grep ras.
Если ras не запущен, для разовой работы его можно стартовать вручную:
# Linux, от пользователя usr1cv8
/opt/1cv8/x86_64/<версия>/ras cluster --daemon
# Windows, в командной строке от администратора
"C:\Program Files\1cv8\<версия>\bin\ras.exe" cluster
Без параметров ras подключается к агенту на localhost:1540 и сам слушает порт 1545. В Windows окно командной строки с ras.exe закрывать нельзя, пока вы работаете с rac.
Шаг 2. Получите GUID кластера
rac cluster list
Если rac запускается на другой машине, укажите адрес сервера администрирования первым аргументом: rac srv1c:1545 cluster list.
В выводе ищите строку cluster:
cluster : 4a1b7c2e-0d3f-4e5a-9b6c-1f2e3d4c5b6a
host : srv1c
port : 1541
name : "Локальный кластер"
Значение после двоеточия и есть идентификатор кластера. Порт в выводе подскажет, какой каталог reg_* ему соответствует.
Шаг 3. Выведите список баз с идентификаторами
rac infobase --cluster=4a1b7c2e-0d3f-4e5a-9b6c-1f2e3d4c5b6a summary list
Результат — блоки по три строки на каждую базу:
infobase : 9e8d7c6b-5a4f-4e3d-2c1b-0a9f8e7d6c5b
name : buh_main
descr :
Строка infobase — искомый GUID. Сверьте name с именем из консоли и скопируйте значение.
Если на кластере заданы администраторы, команда без авторизации вернёт ошибку. Добавьте параметры --cluster-user=<логин> и --cluster-pwd=<пароль>.
Шаг 4. Уточните параметры базы
Чтобы убедиться, что GUID относится к нужной базе, запросите подробности:
rac infobase --cluster=<GUID кластера> info --infobase=<GUID базы> \
--infobase-user=<пользователь 1С> --infobase-pwd=<пароль>
Команда покажет сервер СУБД и имя базы данных. Если в базе есть пользователи, нужны логин и пароль пользователя 1С с административными правами, иначе info откажет в доступе. Для summary list эти данные не требуются.
Дополнительно: GUID через список сеансов
Иногда нужно понять, в какой базе сидит конкретный пользователь. Команда rac session --cluster=<GUID кластера> list выводит сеансы, и у каждого есть строка infobase с идентификатором базы. Сопоставьте её со списком из шага 3. Если какие-то подкоманды или параметры вызывают сомнение, посмотрите встроенную справку: rac help infobase, rac help session.
Что покажут конфигуратор и сама база
Многие ищут идентификатор в конфигураторе через Справка → О программе. Там видна строка соединения вида Srvr="srv1c";Ref="buh_main";. Это адрес сервера и имя базы в кластере, но не GUID.
Из встроенного языка картина та же. Функция СтрокаСоединенияИнформационнойБазы() возвращает ту же строку с сервером и именем. Кластерный GUID средствами самой конфигурации не получить: база о нём не знает, его хранит кластер.
В типовых конфигурациях на Библиотеке стандартных подсистем есть собственный идентификатор базы. Его генерирует сама конфигурация и хранит в своих данных, он используется для интернет-поддержки и обменов. С кластерным GUID он не совпадает. Не отправляйте его в техподдержку, когда просят идентификатор базы на сервере, и не ищите по нему папку в srvinfo.
Отсюда практический вывод. Конфигуратор полезен, чтобы узнать точное имя базы и сервер, если вы подключены к базе, но не знаете, как она называется в кластере. А сам GUID берите через rac или каталог кластера.
Идентификатор базы в каталоге кластера srvinfo
Если rac недоступен, GUID можно найти прямо на диске сервера. Каталог кластера по умолчанию:
| ОС | Типичный путь |
|---|---|
| Windows | C:\Program Files\1cv8\srvinfo\reg_1541 |
| Linux | /home/usr1cv8/.1cv8/1C/1cv8/reg_1541 |
Точный путь задаётся параметром -d при запуске агента ragent. В Windows его видно в свойствах службы агента, в поле пути к исполняемому файлу. В Linux — в выводе ps aux | grep ragent.
Как сопоставить папку с базой
В каталоге reg_1541 лежат:
- 📄 файл
1CV8Clst.lst— реестр кластера со списком зарегистрированных баз; - 📁 папки с именами-GUID — по одной на каждую базу;
- служебные папки и файлы самого кластера.
Внутри реестра у каждой базы записаны рядом её GUID и имя. Найдите строку с именем базы:
# Linux
grep -o '[0-9a-f-]\{36\},"buh_main"' /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/1CV8Clst.lst
# Windows PowerShell
Select-String -Path "C:\Program Files\1cv8\srvinfo\reg_1541\1CV8Clst.lst" -Pattern 'buh_main' -Encoding UTF8
В найденном фрагменте GUID стоит непосредственно перед именем базы. Если шаблон ничего не вернул, откройте файл копией в текстовом редакторе и поищите имя базы вручную: формат записи у разных версий платформы может немного отличаться.
Есть и обходной приём без чтения реестра. Откройте каждую папку-GUID и посмотрите, когда менялись файлы в 1Cv8Log. Попросите пользователя зайти в нужную базу — свежая запись в журнале появится только в её папке.
Ничего не удаляйте и не редактируйте в srvinfo при работающей службе. Порча 1CV8Clst.lst выводит из строя регистрацию всех баз кластера. Чистку папок баз делайте только после остановки службы агента, когда пользователи вышли: все сеансы оборвутся. Перед этим скопируйте каталог reg_1541 целиком.
Связь GUID с базой данных на сервере СУБД
Таблицы самой базы на MS SQL Server или PostgreSQL кластерного GUID не содержат. Это часто сбивает с толку: администратор СУБД видит базу buh_main_2024, а в кластере она зарегистрирована как buh_main. Связка идёт через параметры регистрации, а не через данные.
Порядок такой:
- Получите список баз данных на сервере СУБД.
- Сопоставьте их с параметром «имя базы данных» из консоли кластера или из вывода
rac infobase ... info. - По имени базы в кластере возьмите GUID из
rac infobase ... summary list.
Запросы для первого шага:
-- MS SQL Server
SELECT name, create_date FROM sys.databases ORDER BY name;
-- PostgreSQL
SELECT datname FROM pg_database WHERE datistemplate = false ORDER BY datname;
Так удобно искать «потерянные» базы данных. Если база есть в СУБД, но ни одна запись кластера на неё не ссылается, её, скорее всего, отключили от кластера и забыли удалить. Решение о её судьбе принимайте вместе с владельцем данных, а не по списку.
| Где смотреть | Что получите | GUID базы |
|---|---|---|
| Консоль кластера | имя, описание, СУБД, имя БД | нет |
rac ... summary list | GUID и имя | да |
1CV8Clst.lst и папки srvinfo | GUID и имя | да |
Конфигуратор, СтрокаСоединенияИнформационнойБазы() | сервер и имя | нет |
| Запрос к СУБД | имена баз данных | нет |
Скрипт: выгрузить идентификаторы всех баз сервера
Когда баз десятки, удобнее один раз выгрузить таблицу «кластер — GUID — имя» и держать её под рукой. Скрипты ниже обходят все кластеры сервера и печатают строки через точку с запятой.
Bash (Linux)
#!/bin/bash
RAC=/opt/1cv8/x86_64/<версия>/rac
HOST=localhost:1545
# AUTH="--cluster-user=admin --cluster-pwd=secret" # если на кластере есть администраторы
for CL in $($RAC $HOST cluster list | awk -F' *: *' '$1=="cluster"{print $2}'); do
$RAC $HOST infobase --cluster=$CL $AUTH summary list \
| awk -F' *: *' -v cl="$CL" '$1=="infobase"{id=$2} $1=="name"{print cl";"id";"$2}'
done
Сохраните в файл, дайте права chmod +x и перенаправьте вывод: ./ib_list.sh > ib_list.csv.
PowerShell (Windows)
$rac = "C:\Program Files\1cv8\<версия>\bin\rac.exe"
$clusters = & $rac cluster list | ForEach-Object {
if ($_ -match '^cluster\s*:\s*(\S+)') { $Matches[1] }
}
$result = foreach ($cl in $clusters) {
$id = $null
& $rac infobase "--cluster=$cl" summary list | ForEach-Object {
if ($_ -match '^infobase\s*:\s*(\S+)') { $id = $Matches[1] }
elseif ($_ -match '^name\s*:\s*(.*)$') {
[pscustomobject]@{ Cluster = $cl; Id = $id; Name = $Matches[1].Trim() }
}
}
}
$result | Export-Csv -Path "C:\temp\ib_list.csv" -Delimiter ';' -Encoding UTF8 -NoTypeInformation
Если имена баз на кириллице выводятся «кракозябрами», дело в кодировке консоли. Перед запуском выполните chcp 65001 или проверьте результат в CSV, а не на экране.
Запускайте выгрузку по расписанию раз в неделю и складывайте файлы с датой в имени. Когда базу перерегистрируют, GUID изменится, и по истории будет видно, когда это произошло и какая папка в srvinfo осталась бесхозной.
Пароль администратора кластера в скрипте храните так же аккуратно, как любой другой: в файле с ограниченными правами, а не в общей папке.
Частые вопросы
Меняется ли GUID базы после загрузки файла .dt?
Что будет с GUID, если удалить базу из кластера и зарегистрировать заново?
srvinfo с прежним журналом регистрации может остаться на диске.Меняется ли идентификатор при переименовании базы в консоли?
Совпадает ли GUID базы при переносе на другой сервер 1С?
Можно ли узнать GUID базы, имея только клиент 1С без доступа к серверу?
rac infobase ... summary list или выгрузить таблицу скриптом.