Где искать UUID базы, номер лицензии и ID пользователя в 1С 8.3

· 9 мин

Содержание

Идентификатор серверной базы 1С быстрее всего получить командой rac infobase summary list --cluster=<UUID кластера>: в поле infobase будет её UUID. Для файловой базы такого идентификатора нет, а в списке баз у каждой строки свой ID в файле ibases.v8i. Номер лицензии берут из файла .lic или утилиты ring, ID пользователя — из встроенного языка или карточки пользователя.

Какой способ выбрать, зависит от того, что именно нужно. Администратору сервера для скриптов — UUID базы. Техподдержке и партнёру — регистрационный номер программы и номер лицензии. Разработчику — уникальный идентификатор пользователя или объекта. Ниже все варианты по порядку, с командами и путями.

Какие идентификаторы бывают в 1С и чем они отличаются

Под словом «идентификатор» в 1С скрываются минимум шесть разных вещей. Их часто путают, и техподдержка просит одно, а присылают другое.

Что нужноКак выглядитГде взять
🗄️ UUID серверной базыa1b2c3d4-...-... (36 символов)rac, консоль кластера, каталог srvinfo
📋 ID строки в списке базGUID в ibases.v8iфайл списка баз на компьютере пользователя
🔑 Номер программной лицензиисерия и номер из файла .licring license list, каталог лицензий
🔐 Номер аппаратного ключаKey ID ключа защитыменеджер лицензий ключа
👤 UUID пользователя базыGUIDвстроенный язык, карточка пользователя
🌐 Логин ИТС, ID участника ЭДОлогин портала, строка оператора ЭДОнастройки интернет-поддержки и ЭДО

Регистрационный номер программы (с коробки или из электронной поставки) — это не номер лицензии. По нему регистрируют продукт на портале поддержки. Лицензий у одного регистрационного номера может быть несколько.

UUID информационной базы на сервере 1С

UUID есть только у баз, зарегистрированных в кластере серверов 1С:Предприятия. Он назначается при создании базы в кластере и не меняется, пока базу не удалят из кластера.

Через утилиту rac

Утилита rac работает через сервер администрирования ras. На Windows ras обычно ставят как отдельную службу, порт по умолчанию — 1545.

  1. Откройте командную строку в каталоге платформы, например C:\Program Files\1cv8\8.3.24.1342\bin.
  2. Получите UUID кластера:
rac.exe localhost:1545 cluster list
  1. Скопируйте значение поля cluster.
  2. Выведите список баз:
rac.exe localhost:1545 infobase summary list --cluster=<UUID кластера>

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

Если на кластере задан администратор, добавьте --cluster-user=<имя> --cluster-pwd=<пароль>.

Через консоль администрирования

В консоли кластера (оснастка MMC) откройте Кластеры → <ваш кластер> → Информационные базы. Там видны имена баз. Сам UUID в карточке базы консоль не показывает, поэтому для точного значения удобнее rac.

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

regsvr32 "C:\Program Files\1cv8\8.3.24.1342\bin\radmin.dll"

Команду запускайте от имени администратора. Версия в пути должна совпадать с версией сервера.

Через каталог кластера на диске

Каждая база кластера хранит служебные данные в папке, названной её UUID:

C:\Program Files\1cv8\srvinfo\reg_1541\<UUID базы>\

Чтобы понять, какая папка к какой базе относится, откройте в блокноте файл 1CV8Clst.lst в той же папке reg_1541. В нём рядом с каждым UUID записано имя базы.

Файл 1CV8Clst.lst — реестр кластера. Только смотрите, ничего не меняйте и не сохраняйте. Испорченный реестр может «потерять» базы кластера.

ID базы в списке баз и строка соединения

У файловой базы UUID кластера нет. Зато есть два значения, которые обычно и нужны для поддержки.

Строка соединения

Она однозначно указывает, где лежит база. Для файловой базы это File="D:\Bases\Buh";, для серверной — Srvr="srv1c";Ref="buh";.

Посмотреть её можно в окне запуска: выделите базу, внизу окна отобразится путь. Из кода её возвращает функция:

Сообщить(СтрокаСоединенияИнформационнойБазы());

ID в файле ibases.v8i

Список баз на компьютере хранится в файле:

%APPDATA%\1C\1CEStart\ibases.v8i

Каждая база там — блок с названием в квадратных скобках, строкой Connect= и строкой ID= с GUID. Этот GUID идентифицирует строку в списке, а не саму базу. Если добавить ту же базу ещё раз, у новой строки будет другой ID.

Отсюда частая путаница: у двух сотрудников одна и та же база в списке имеет разные ID. Это нормально. Для однозначной ссылки на базу передавайте строку соединения, а для серверной — UUID из rac.

Как получить ID через SQL и встроенный язык

Что можно найти в СУБД

UUID базы хранится в реестре кластера, а не в таблицах СУБД. Запросом к базе MS SQL или PostgreSQL его не достать.

Обратная задача решается: узнать, какая база данных СУБД соответствует базе кластера. Для этого выполните:

rac.exe localhost:1545 infobase info --cluster=<UUID кластера> --infobase=<UUID базы> --infobase-user=<пользователь> --infobase-pwd=<пароль>

В ответе будут поля db-server и db-name — сервер СУБД и имя базы данных. Учётная запись должна быть пользователем этой информационной базы с правами администратора.

Прямые запросы на изменение таблиц 1С в СУБД ломают целостность данных. Для чтения служебной информации достаточно rac и встроенного языка.

Идентификаторы во встроенном языке

Если доступ к коду есть (обработка, консоль кода), получить нужное можно напрямую:

// UUID текущего пользователя информационной базы
ТекПользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
Сообщить(ТекПользователь.Имя + ": " + Строка(ТекПользователь.УникальныйИдентификатор));

// Номер текущего сеанса
Сообщить("Сеанс № " + Формат(НомерСеансаИнформационнойБазы(), "ЧГ=0"));

UUID конкретного объекта (документа, элемента справочника) возвращает метод ссылки:

Сообщить(Строка(СсылкаНаОбъект.УникальныйИдентификатор()));

Пользователю без кода проще открыть объект и через меню формы выбрать команду «Получить ссылку». В навигационной ссылке вида e1cib/data/...?ref=... после ref= стоят 32 шестнадцатеричных символа — это тот же UUID, только в другом порядке байтов и без дефисов.

Номер лицензии и ключа защиты 1С

Здесь два случая: программная лицензия (файл) и аппаратный ключ (USB).

Программная лицензия

Активированные лицензии лежат файлами с расширением .lic. Основное место на Windows:

C:\ProgramData\1C\licenses\

Лицензия может оказаться и в профиле пользователя, если её активировали «для текущего пользователя». Файл бинарный, номер из него глазами не прочитать. Для этого служит утилита ring из комплекта инструментов лицензирования:

ring license list
ring license info --name <имя лицензии из списка>

Первая команда выводит лицензии на компьютере, вторая — подробности: регистрационный номер, номер лицензии, на что она выдана. Если параметры отличаются в вашей версии утилиты, смотрите ring license help.

Какая лицензия занята каким сеансом, на сервере показывает:

rac.exe localhost:1545 session list --cluster=<UUID кластера> --licenses

В выводе видно, программная это лицензия или ключ, и с какого компьютера она получена.

Аппаратный ключ HASP

У USB-ключа свой номер (Key ID). Его показывает веб-панель менеджера лицензий Sentinel, которая устанавливается вместе с драйвером ключа: откройте в браузере http://localhost:1947, раздел со списком ключей. Номер также напечатан на корпусе ключа.

Если поддержка просит «номер лицензии», уточните, что нужно: регистрационный номер продукта, номер программной лицензии или номер ключа. Это три разных числа.

Пин-коды

Пин-код — не идентификатор лицензии, а одноразовый код для её активации. Конверт с пин-кодами храните: при переустановке системы или замене оборудования лицензию активируют резервным пин-кодом, а без конверта восстановление идёт через продавца.

Идентификаторы пользователей, ИТС и сервисов 1С

UUID пользователя информационной базы

В Конфигураторе (Администрирование → Пользователи) видно имя и свойства пользователя, но не его UUID. Получить его можно кодом из предыдущего раздела.

В конфигурациях на БСП (БП 3.0, ЗУП 3.1, УТ 11) элемент справочника «Пользователи» связан с пользователем базы через реквизит ИдентификаторПользователяИБ. Если нужно найти, какому сотруднику соответствует UUID из журнала или лога, сравнивают именно это поле.

Найти пользователя базы по имени и вывести его UUID:

ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени("Бухгалтер");
Если ПользовательИБ <> Неопределено Тогда
    Сообщить(Строка(ПользовательИБ.УникальныйИдентификатор));
КонецЕсли;

Логин интернет-поддержки (ИТС)

Логин портала поддержки — идентификатор для обновлений, 1С:Контрагента, проверки сертификатов и других сервисов. Где он подключается в БП 3.0, ЗУП 3.1 и УТ 11:

Администрирование → Интернет-поддержка и сервисы

Если поддержка подключена, на этой странице отображается логин. Пароль из программы не посмотреть: его хранят отдельно или восстанавливают на портале.

ID участника ЭДО и абонента 1С-Отчётности

Идентификатор участника ЭДО выдаёт оператор электронного документооборота. Строка начинается с кода оператора, затем идёт уникальная часть. Контрагенты просят именно его, чтобы отправить приглашение.

В программе он виден в учётной записи ЭДО организации: откройте настройки ЭДО через раздел Администрирование, список учётных записей, карточку нужной. У 1С-Отчётности свой идентификатор абонента — он хранится в учётной записи документооборота и нужен при обращении к оператору отчётности.

Кто просит идентификатор?

Автоматизация: выгрузка UUID всех баз скриптом

Когда на сервере десятки баз, ручной перебор неудобен. Скрипт на PowerShell обходит все кластеры и сохраняет пары «имя — UUID» в CSV.

$rac  = "C:\Program Files\1cv8\8.3.24.1342\bin\rac.exe"
$ras  = "localhost:1545"
$out  = "C:\Temp\infobases.csv"
$rows = @()

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

foreach ($cl in $clusters) {
    $ib = $null
    foreach ($line in (& $rac $ras infobase summary list --cluster=$cl)) {
        if ($line -match '^infobase\s*:\s*(.+)$') { $ib = $Matches[1].Trim() }
        elseif ($line -match '^name\s*:\s*(.+)$' -and $ib) {
            $rows += [pscustomobject]@{ Cluster = $cl; Name = $Matches[1].Trim(); UUID = $ib }
            $ib = $null
        }
    }
}

$rows | Export-Csv $out -NoTypeInformation -Encoding UTF8
Write-Host "Найдено баз:" $rows.Count

Как это работает:

  1. 🔍 Из вывода cluster list берутся строки, начинающиеся с cluster, — это UUID кластеров.
  2. 🔁 Для каждого кластера выполняется infobase summary list.
  3. 🧩 Строка infobase запоминается, а следующая за ней name закрывает запись.
  4. 💾 Результат уходит в CSV, который открывается в Excel.

Если на кластере есть администратор, добавьте к обеим командам --cluster-user и --cluster-pwd. Пароль в скрипте открытым текстом не храните: передавайте его параметром при запуске или берите из защищённого хранилища Windows.

На Linux та же логика пишется на bash. rac лежит в /opt/1cv8/x86_64/<версия>/, а ras запускают как службу или командой ras cluster --daemon.

Для учёта лицензий так же удобно раз в сутки выгружать session list --licenses по всем кластерам. Видно, кто и с какого компьютера занимает лицензии в часы пик.

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

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