Где посмотреть ID информационной базы 1С и чем он отличается от GUID в кластере

· 9 мин

Содержание

Быстрее всего идентификатор базы 1С находится в файле %APPDATA%\1C\1CEStart\ibases.v8i: у каждой базы из списка там есть строка ID= с GUID. Если же нужен уникальный идентификатор информационной базы на сервере 1С, его выдаёт команда rac infobase summary list — это другой GUID, и путать их нельзя.

Типичная ситуация: техподдержка обработки или сервиса просит «прислать идентификатор базы», а администратор отправляет ID из списка запуска. Через неделю выясняется, что нужен был GUID из кластера или значение из константы конфигурации. Ниже разобрано, какой идентификатор где живёт и как получить каждый за пару минут.

Какие бывают идентификаторы базы 1С

Под словами «идентификатор 1С» люди имеют в виду как минимум четыре разные вещи. Все они выглядят одинаково — GUID из 36 символов вида 0f8fad5b-d9cb-469f-a165-70867728950e, — но значат разное.

Что этоГде хранитсяКто его создаётКогда меняется
🗂 ID записи в списке базibases.v8i в профиле пользователяокно запуска 1С при добавлении базыпри удалении и повторном добавлении базы в список
🖥 GUID информационной базы в кластере (УИИ)реестр кластера 1CV8Clst.lstсервер 1С при регистрации базыпри удалении базы из кластера и новой регистрации
🧩 Идентификатор в константе конфигурацииданные самой базыпрограммный код типовой конфигурации на БСПпри восстановлении копии — переносится вместе с данными
🔗 Уникальный идентификатор объектассылка на элемент, документплатформа при записи объектаникогда, пока объект существует

Главное различие простое. ID в списке баз — это свойство ярлыка на конкретном компьютере. Одна и та же серверная база у пяти бухгалтеров будет иметь пять разных ID в их списках. GUID в кластере — свойство самой базы на сервере, он один для всех.

Если вас просят «идентификатор информационной базы» для лицензирования, мониторинга или регистрации в сервисе, уточните, откуда его брать. В большинстве сторонних инструкций речь о GUID из кластера или о значении внутри конфигурации, а не о строке ID= из списка.

ID базы в списке информационных баз

Это самый доступный идентификатор: он есть и у файловых, и у серверных баз, и для его поиска не нужны права администратора.

Через файл ibases.v8i

  1. Закройте окно запуска 1С, чтобы файл не перезаписался в момент чтения.
  2. Нажмите Win + R, вставьте %APPDATA%\1C\1CEStart и нажмите Enter.
  3. Откройте файл ibases.v8i в Блокноте.
  4. Найдите блок с именем нужной базы в квадратных скобках.
  5. Строка ID= в этом блоке и есть идентификатор записи.

Блок выглядит примерно так:

[Бухгалтерия ООО Ромашка]
Connect=Srvr="srv1c";Ref="buh_romashka";
ID=6a1c2f0e-3b7d-4e55-9c1a-2d8e4f7b9a10
OrderInList=16384
Folder=/
OrderInTree=16384
External=0
ClientConnectionSpeed=Normal
App=Auto
WA=1
Version=8.3

Строка Connect= подсказывает, где физически лежит база: File="…" — файловая, Srvr=…;Ref=… — серверная, ws=… — подключение через веб-сервер.

Не правьте ID= вручную. Окно запуска использует его для привязки настроек и истории запуска. Испорченный GUID приведёт к тому, что база пропадёт из списка или задвоится.

Если базы в файле нет

Список может собираться не только из ibases.v8i. Администратор иногда подключает общие списки через файл 1CEStart.cfg (строки CommonInfoBases=). Тогда записи лежат в отдельном .v8i на сетевом ресурсе. Откройте 1CEStart.cfg в той же папке и посмотрите путь в строке CommonInfoBases.

Строка соединения и данные из конфигурации

Иногда нужен не GUID, а точное понимание, к какой именно базе подключён пользователь. Это видно прямо из программы.

В режиме 1С:Предприятие

Откройте главное меню (кнопка с тремя полосками в левом верхнем углу) → Справка → О программе. В окне есть строка соединения с базой: путь к каталогу для файловой базы или имя сервера и базы для серверной.

Константа с идентификатором в типовых конфигурациях

Типовые конфигурации на Библиотеке стандартных подсистем хранят собственный идентификатор базы в константе. Его используют сервисы интернет-поддержки и центр мониторинга. Чтобы его увидеть:

  1. Включите команду «Все функции»: главное меню → Сервис → Параметры → флажок «Отображать команду “Все функции”».
  2. Главное меню → Все функции → ветка Константы.
  3. Введите в поиск списка слово «Идентификатор» и откройте найденную константу.

Это значение живёт в данных базы. Если развернуть копию из .dt или бэкапа SQL, копия получит тот же идентификатор. Поэтому для тестовой копии сервисы иногда видят «ту же самую базу».

Как узнать GUID базы через командную строку

Уникальный идентификатор информационной базы на сервере 1С удобнее всего получить утилитой администрирования rac. Она ставится вместе с сервером в каталог bin платформы и общается с сервером через службу ras.

Подготовка

  • 🔧 Служба ras должна быть запущена (по умолчанию слушает порт 1545). Если её нет, зарегистрируйте её как службу Windows или запустите вручную командой ras cluster из каталога bin.
  • 🔑 Если у кластера заданы администраторы, понадобятся их логин и пароль: параметры --cluster-user и --cluster-pwd.
  • 📂 Работайте из каталога bin той версии платформы, на которой крутится сервер.

Шаги

  1. Узнайте идентификатор кластера:
cd "C:\Program Files\1cv8\<версия>\bin"
rac.exe localhost:1545 cluster list

В выводе найдите строку cluster : — это GUID кластера.

  1. Получите список баз кластера:
rac.exe localhost:1545 infobase summary list --cluster=<GUID кластера>

Для каждой базы будут строки infobase : (её GUID), name : (имя на сервере) и descr : (описание).

  1. Если нужны подробности — сервер СУБД и имя базы данных, — выполните:
rac.exe localhost:1545 infobase info --cluster=<GUID кластера> --infobase=<GUID базы> --infobase-user=<логин> --infobase-pwd=<пароль>

Здесь --infobase-user — пользователь самой информационной базы с правами администратора. Полный список параметров покажет rac help infobase.

Нет доступа к ras? GUID зарегистрированных баз видны и на диске сервера. В каталоге данных кластера (по умолчанию C:\Program Files\1cv8\srvinfo\reg_1541) для каждой базы есть подкаталог, названный её GUID. А сам реестр с соответствием имён и GUID хранится в файле 1CV8Clst.lst в том же каталоге. Файл реестра только читайте, ничего в нём не меняйте — повреждённый реестр выводит из строя весь кластер.

Конфигуратор и отладчик: идентификаторы изнутри

Когда доступа к серверу нет, а в базу зайти можно, часть данных берётся из конфигуратора.

Окно «О программе» в конфигураторе

В конфигураторе меню Справка → О программе показывает строку соединения и версию платформы. Этого хватает, чтобы сопоставить базу с записью в кластере по имени.

Вычисление выражения в отладчике

Отладчик позволяет вычислить любое выражение встроенного языка в контексте базы:

  1. Запустите базу в режиме отладки из конфигуратора (F5).
  2. Поставьте точку останова в любом модуле, который точно выполнится, например в модуле формы, которую откроете.
  3. Когда выполнение остановится, нажмите Shift + F9 и вычислите нужное выражение.

Полезные выражения:

СтрокаСоединенияИнформационнойБазы()
// Srvr="srv1c";Ref="buh_romashka"; или File="D:\Bases\Buh";

Новый СистемнаяИнформация().ИдентификаторКлиента
// GUID клиентского приложения, а не базы

Документы.РеализацияТоваровУслуг.НайтиПоНомеру("0000-000123").УникальныйИдентификатор()
// GUID конкретного документа

Отладку запускайте на копии или в нерабочее время. Остановка на точке останова блокирует сеанс, а в серверной базе отладку ещё нужно разрешить на сервере. Не пытайтесь «быстро посмотреть» в рабочей базе посреди закрытия месяца.

Строку соединения проще получить без отладчика: та же функция работает в консоли кода или во внешней обработке с одной кнопкой, которая выводит СтрокаСоединенияИнформационнойБазы() через Сообщить.

Что можно найти через SQL

Сама 1С не хранит GUID из кластера в виде отдельного поля, которое удобно выбрать запросом. Связь «база кластера → база данных СУБД» задаётся в реестре кластера. Поэтому через SQL решают обратную задачу: понять, какой базе данных на сервере СУБД соответствует информационная база.

Порядок такой:

  1. Выполните rac … infobase info из раздела выше и посмотрите поля db-server, dbms и db-name.
  2. На сервере MS SQL проверьте, что такая база есть:
SELECT name, database_id, create_date
FROM sys.databases
WHERE name = N'buh_romashka';
  1. Для PostgreSQL аналог:
SELECT datname, oid
FROM pg_database
WHERE datname = 'buh_romashka';

database_id и oid — внутренние номера СУБД, к идентификаторам 1С они отношения не имеют. Но эта пара «имя в кластере — имя в СУБД» нужна, когда на сервере десятки баз с похожими именами.

Не меняйте данные в таблицах 1С напрямую через SQL. Прямая запись в обход платформы нарушает лицензионное соглашение и может сломать базу так, что её не поднимет даже тестирование и исправление. Только чтение.

Скрипты PowerShell для массового поиска

Когда баз много, искать вручную долго. Два скрипта ниже собирают идентификаторы в таблицу.

Все ID из списка баз пользователя

$file = Join-Path $env:APPDATA '1C\1CEStart\ibases.v8i'
$result = @()
$current = $null

foreach ($line in Get-Content -Path $file -Encoding UTF8) {
    if ($line -match '^\[(.+)\]$') {
        $current = [pscustomobject]@{ База = $Matches[1]; ID = ''; Подключение = '' }
        $result += $current
    }
    elseif ($current -and $line -match '^ID=(.+)$') {
        $current.ID = $Matches[1]
    }
    elseif ($current -and $line -match '^Connect=(.+)$') {
        $current.Подключение = $Matches[1]
    }
}

$result | Format-Table -AutoSize

Чтобы выгрузить результат в файл для Excel, замените последнюю строку на $result | Export-Csv -Path "$env:USERPROFILE\Desktop\ibases.csv" -Encoding UTF8 -NoTypeInformation -Delimiter ';'.

Все GUID баз на сервере 1С

$rac = 'C:\Program Files\1cv8\<версия>\bin\rac.exe'
$ras = 'localhost:1545'

$clusterLine = & $rac $ras cluster list | Where-Object { $_ -match '^cluster\s*:' } | Select-Object -First 1
$cluster = ($clusterLine -split ':', 2)[1].Trim()

$bases = @()
$item = $null
foreach ($line in & $rac $ras infobase summary list --cluster=$cluster) {
    if ($line -match '^infobase\s*:\s*(.+)$') {
        $item = [pscustomobject]@{ GUID = $Matches[1].Trim(); Имя = ''; Описание = '' }
        $bases += $item
    }
    elseif ($item -and $line -match '^name\s*:\s*(.+)$')  { $item.Имя = $Matches[1].Trim() }
    elseif ($item -and $line -match '^descr\s*:\s*(.*)$') { $item.Описание = $Matches[1].Trim() }
}

$bases | Sort-Object Имя | Format-Table -AutoSize

Скрипт берёт первый кластер из списка. Если кластеров несколько или заданы администраторы кластера, допишите в вызов infobase summary list параметры --cluster-user и --cluster-pwd. Значения в выводе rac с пробелами и кириллицей могут быть в кавычках — при необходимости уберите их методом .Trim('"').

Где чаще всего ошибаются

  • ❌ Отправляют ID из списка баз вместо GUID кластера. Внешний сервис не найдёт базу по такому значению: на сервере его просто нет.
  • ❌ Ищут базу по имени в списке запуска. Имя в квадратных скобках задаёт пользователь, оно может быть любым. Надёжнее сверять строку Connect= или имя базы на сервере (Ref=).
  • ❌ Путают сервер и порт. Команды rac идут к службе ras (порт 1545), а не к агенту сервера 1С на порту 1540. Ошибка подключения в этом случае не говорит о том, что база потеряна.
  • ❌ Считают тестовую копию отдельной базой для сервисов. Копия из бэкапа несёт тот же идентификатор в константе, что и рабочая база. Сервис видит две одинаковые базы и может отключить одну из них.
Какой идентификатор вам нужен?

Частые вопросы

Меняется ли GUID базы в кластере после обновления конфигурации?
Нет. Обновление конфигурации и платформы не трогает регистрацию базы в кластере. GUID меняется только при удалении базы из кластера и повторном создании.
Почему у коллеги ID той же базы другой?
ID из ibases.v8i принадлежит записи в списке конкретного пользователя. Каждый, кто добавил базу себе в список, получил свой GUID.
Есть ли GUID у файловой базы?
Кластера у файловой базы нет, поэтому GUID из rac у неё нет. Есть ID записи в списке баз и, в типовых конфигурациях, идентификатор в константе.
Что будет с идентификатором при копировании базы через .dt?
Новая база в кластере получит новый GUID. Значение в константе конфигурации перенесётся вместе с данными, поэтому копию для тестов полезно отключать от сервисов, которые сверяют этот идентификатор.