Где искать UUID базы, номер лицензии и ID пользователя в 1С 8.3
Содержание
Идентификатор серверной базы 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 | файл списка баз на компьютере пользователя |
| 🔑 Номер программной лицензии | серия и номер из файла .lic | ring license list, каталог лицензий |
| 🔐 Номер аппаратного ключа | Key ID ключа защиты | менеджер лицензий ключа |
| 👤 UUID пользователя базы | GUID | встроенный язык, карточка пользователя |
| 🌐 Логин ИТС, ID участника ЭДО | логин портала, строка оператора ЭДО | настройки интернет-поддержки и ЭДО |
Регистрационный номер программы (с коробки или из электронной поставки) — это не номер лицензии. По нему регистрируют продукт на портале поддержки. Лицензий у одного регистрационного номера может быть несколько.
UUID информационной базы на сервере 1С
UUID есть только у баз, зарегистрированных в кластере серверов 1С:Предприятия. Он назначается при создании базы в кластере и не меняется, пока базу не удалят из кластера.
Через утилиту rac
Утилита rac работает через сервер администрирования ras. На Windows ras обычно ставят как отдельную службу, порт по умолчанию — 1545.
- Откройте командную строку в каталоге платформы, например
C:\Program Files\1cv8\8.3.24.1342\bin. - Получите UUID кластера:
rac.exe localhost:1545 cluster list
- Скопируйте значение поля
cluster. - Выведите список баз:
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С-Отчётности свой идентификатор абонента — он хранится в учётной записи документооборота и нужен при обращении к оператору отчётности.
rac infobase summary list и имя базы в кластере. Для файловой — строку соединения.ring license info, для ключа — Key ID.Автоматизация: выгрузка 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
Как это работает:
- 🔍 Из вывода
cluster listберутся строки, начинающиеся сcluster, — это UUID кластеров. - 🔁 Для каждого кластера выполняется
infobase summary list. - 🧩 Строка
infobaseзапоминается, а следующая за нейnameзакрывает запись. - 💾 Результат уходит в CSV, который открывается в Excel.
Если на кластере есть администратор, добавьте к обеим командам --cluster-user и --cluster-pwd. Пароль в скрипте открытым текстом не храните: передавайте его параметром при запуске или берите из защищённого хранилища Windows.
На Linux та же логика пишется на bash. rac лежит в /opt/1cv8/x86_64/<версия>/, а ras запускают как службу или командой ras cluster --daemon.
Для учёта лицензий так же удобно раз в сутки выгружать session list --licenses по всем кластерам. Видно, кто и с какого компьютера занимает лицензии в часы пик.
Частые вопросы
Меняется ли UUID базы после выгрузки и загрузки .dt?
Почему у одной базы в ibases.v8i на разных компьютерах разные ID?
Можно ли узнать UUID базы без прав администратора кластера?
rac без его логина и пароля список баз не отдаст. Остаётся строка соединения из окна запуска — её видит любой пользователь.