Где найти GUID информационной базы 1С на сервере и в файловом варианте

· 9 мин

Содержание

Для серверной базы идентификатор определяют командой rac infobase summary list --cluster=<UUID кластера>: в выводе у каждой базы есть поле infobase — это её GUID в кластере 1С. Для файловой базы GUID кластера нет, и «идентификатором базы» обычно называют ID записи в списке баз из файла ibases.v8i: по нему названы папки кэша в профиле пользователя.

Способов несколько, и выбирают их по задаче. Нужен GUID для скрипта администрирования или поиска журнала регистрации на сервере — берите rac или реестр кластера. Нужно почистить кэш конкретной файловой базы — смотрите ibases.v8i. Запрос к SQL помогает только связать базу кластера с базой данных СУБД, сам GUID там в готовом виде не лежит.

Какой идентификатор базы 1С вам нужен

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

Что называют идентификаторомГде живётДля чего нужен
GUID информационной базы в кластеререестр кластера сервера 1Скоманды rac, каталоги журнала и сеансовых данных на сервере
ID в списке базibases.v8i на компьютере пользователяимена папок кэша, поиск базы в списке
Имя базы в кластере (Ref)строка соединения Srvr=...;Ref=...подключение клиента, публикация на веб-сервере
Имя базы данных СУБДMS SQL / PostgreSQLбэкапы и обслуживание на стороне СУБД
Код узла обмена, префикс базыданные конфигурацииобмены, РИБ, нумерация документов

Ключевая разница: GUID в кластере один на базу и одинаков для всех пользователей. ID из ibases.v8i свой у каждого пользователя и компьютера, даже если база одна и та же.

Для чего вам идентификатор базы?

Что показывает сама 1С: «О программе» и Конфигуратор

Ни в режиме «Предприятие», ни в Конфигураторе GUID базы кластера на экран не выводится. Зато здесь быстро узнают строку соединения, а по ней уже ищут GUID.

В режиме «Предприятие»

  1. Откройте главное меню (кнопка с тремя полосками в заголовке окна).
  2. Выберите Справка → О программе.
  3. В строке информационной базы будет строка соединения:
    • для файловой базы — File="D:\Bases\Buh";
    • для серверной — Srvr="srv1c";Ref="buh_main".

Из серверной строки вам нужны две вещи: имя сервера (Srvr) и имя базы в кластере (Ref). Имя в кластере не обязано совпадать с названием базы в списке запуска — пользователь мог назвать её как угодно.

В Конфигураторе

В Конфигураторе то же окно открывается через Справка → О программе. Там видно строку соединения и версию платформы. Сам GUID Конфигуратор не показывает, сколько ни ищите в свойствах конфигурации.

Свойство конфигурации «Имя» и её версия — это данные конфигурации, а не базы. В десяти базах одной БП 3.0 они одинаковые и для идентификации базы не годятся.

Через встроенный язык

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

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

GUID кластера этой функцией не получить: она отдаёт имя сервера и имя базы, а дальше работает rac.

Определяем GUID серверной базы утилитой rac

rac — консольный клиент сервера администрирования ras. Утилита лежит в каталоге bin установленной платформы, например C:\Program Files\1cv8\8.3.24.1342\bin\rac.exe. По умолчанию она подключается к ras на порту 1545.

Шаг 1. Запустите сервер администрирования

Если ras не установлен службой, запустите его вручную на сервере 1С:

cd "C:\Program Files\1cv8\8.3.24.1342\bin"
ras cluster --daemon

Без работающего ras любая команда rac упадёт с ошибкой соединения.

Шаг 2. Узнайте UUID кластера

rac cluster list

В выводе ищите поле cluster — это идентификатор кластера, он понадобится в каждой следующей команде. Рядом будут host и port (обычно 1541).

Шаг 3. Выведите список баз с GUID

rac infobase summary list --cluster=<UUID кластера>

Для каждой базы команда печатает три поля:

  • 🔑 infobase — GUID базы, ради которого всё затевалось;
  • 🏷 name — имя базы в кластере (то самое Ref из строки соединения);
  • 📝 descr — описание, если его заполняли.

Если на кластере задан администратор, добавьте учётные данные:

rac infobase summary list --cluster=<UUID кластера> --cluster-user=admin --cluster-pwd=пароль

Шаг 4. Проверьте, что это та база

Для подробностей по одной базе есть команда info. Она требует ещё и логин пользователя самой информационной базы:

rac infobase info --cluster=<UUID кластера> --infobase=<GUID базы> --infobase-user=Администратор --infobase-pwd=пароль

В ответе есть тип СУБД, сервер СУБД и имя базы данных (db-name). По ним сразу видно, что GUID относится к нужной базе, а не к её тестовой копии с похожим именем.

Пароль в командной строке остаётся в истории консоли и в логах планировщика. В скриптах берите его из переменной окружения или защищённого хранилища.

Если не уверены в синтаксисе ключей своей версии платформы, смотрите встроенную справку: rac help infobase.

Вариант для Linux

На Linux команды те же, путь к утилите обычно /opt/1cv8/x86_64/<версия>/rac. Список баз удобно сразу отфильтровать:

/opt/1cv8/x86_64/8.3.24.1342/rac infobase summary list --cluster=<UUID> | grep -B1 -A1 "buh_main"

GUID в реестре кластера и каталогах srvinfo

Когда ras поднять нельзя, GUID находят прямо в файлах сервера. Нужен доступ к каталогу службы сервера 1С.

Где лежит реестр

  • 🪟 Windows (служба по умолчанию): C:\Program Files\1cv8\srvinfo\reg_1541\
  • 🐧 Linux: /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/

Цифры в reg_1541 — порт менеджера кластера. Если кластер работает на другом порту, папка называется иначе, например reg_2541.

Способ 1. Файл 1CV8Clst.lst

В каталоге reg_1541 лежит файл 1CV8Clst.lst — реестр кластера в текстовом формате со скобками. Откройте его копию в редакторе и найдите имя базы поиском. GUID базы стоит в той же записи перед её именем.

  1. Скопируйте 1CV8Clst.lst в любую рабочую папку.
  2. Откройте копию в Notepad++ или другом редакторе.
  3. Найдите имя базы из Ref.
  4. Возьмите GUID в формате xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx в начале записи.

Не редактируйте и не сохраняйте оригинал 1CV8Clst.lst при работающей службе — повреждённый реестр кластера приводит к тому, что базы перестают открываться. Работайте только с копией.

Способ 2. Подкаталоги баз

В reg_1541 для каждой информационной базы есть подкаталог, названный её GUID. Внутри — журнал регистрации 1Cv8Log и служебные данные. Если нужно найти журнал конкретной базы:

  1. Отсортируйте подкаталоги по дате изменения.
  2. Откройте каталог, где 1Cv8Log обновлялся в момент работы пользователей нужной базы.
  3. Сверьте имя каталога с GUID из 1CV8Clst.lst.

Подкаталоги без записи в реестре — следы удалённых из кластера баз. Их GUID в rac уже не встретите.

Что даёт запрос к SQL

В базе данных MS SQL или PostgreSQL GUID информационной базы кластера в готовом читаемом поле не хранится. SQL нужен для другого: сопоставить базу 1С с базой данных СУБД и убедиться, что вы смотрите туда, куда нужно.

Список баз данных на сервере СУБД

MS SQL Server:

SELECT name, database_id, create_date
FROM sys.databases
ORDER BY name;

PostgreSQL:

SELECT datname, oid
FROM pg_database
ORDER BY datname;

database_id и oid — внутренние номера СУБД. К идентификатору базы 1С они отношения не имеют, хотя их иногда за него принимают.

Как связать SQL-базу с GUID 1С

  1. Через rac infobase info получите db-server и db-name нужной базы.
  2. Найдите это имя в списке из запроса выше.
  3. Если имён много и они похожи, проверьте наличие служебных таблиц 1С — например, Config и Params: в чужой базе их не будет.
-- MS SQL: есть ли в базе таблицы платформы 1С
USE buh_main_db;
SELECT name FROM sys.tables WHERE name IN ('Config', 'Params', 'IBVersion');

Только чтение. Любые UPDATE и DELETE в таблицах платформы 1С ломают базу, а восстановить её поможет лишь резервная копия.

Идентификатор файловой базы: ibases.v8i и папки кэша

Файловая база не регистрируется в кластере, поэтому GUID кластера у неё нет. Практический идентификатор — ID записи в списке баз пользователя.

Где файл списка баз

Список баз хранится в %APPDATA%\1C\1CEStart\ibases.v8i. Вставьте путь в адресную строку проводника — он раскроется в профиль текущего пользователя.

Запись одной базы выглядит так:

[Бухгалтерия основная]
Connect=File="D:\Bases\Buh";
ID=3f2a9c1e-7b4d-4e8a-9c61-0d5e2f8b1a47
OrderInList=16384
Folder=/
  • 📂 Connect — путь к каталогу с файлом 1Cv8.1CD;
  • 🔑 ID — идентификатор записи списка;
  • 🗂 Folder — папка в окне запуска, если базы сгруппированы.

Папки кэша с этим ID

Платформа создаёт папки кэша, названные этим ID:

  • %APPDATA%\1C\1cv8\<ID>
  • %LOCALAPPDATA%\1C\1cv8\<ID>

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

Чистим кэш одной файловой базы
Выполнено: 0 / 5

Почему ID у коллеги другой

Каждый раз, когда базу добавляют в список вручную, платформа генерирует новый ID. У двух бухгалтеров, работающих с одной D:\Bases\Buh, он разный. Если базы раздают общим файлом .v8i через групповые политики или общий список, ID совпадёт у всех, кто получил этот файл.

Для серверной базы ibases.v8i тоже есть, но там ID — всё так же запись списка, а не GUID в кластере. Это главная причина путаницы.

Почему GUID «не тот» или не находится

На этих ситуациях спотыкаются и опытные администраторы. У каждой есть быстрая проверка.

Диагностика: выберите симптом

Ещё одна ловушка — несколько кластеров на одном сервере с разными портами. У каждого свой каталог reg_<порт> и свой 1CV8Clst.lst. Ищете базу не в том каталоге — не находите её вовсе.

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

Меняется ли GUID базы после обновления конфигурации или платформы?
Нет. Обновление конфигурации и переход на новый релиз платформы GUID в кластере не трогают. Он меняется только при повторной регистрации базы в кластере.
Совпадёт ли GUID у копии базы, выгруженной в .dt?
Нет. При загрузке .dt в новую базу кластера она получает свой GUID. Файл выгрузки GUID исходной регистрации не переносит.
Чем GUID базы отличается от уникального идентификатора объекта?
Уникальный идентификатор есть у каждого справочника и документа внутри базы, его возвращает метод УникальныйИдентификатор() у ссылки. С GUID информационной базы он никак не связан.
Можно ли узнать GUID базы, не имея прав администратора кластера?
Через rac — нет, если на кластере задан администратор. Без него можно прочитать копию 1CV8Clst.lst, но для этого нужен доступ к каталогу службы на сервере.
Где указано имя базы для веб-публикации?
В файле default.vrd опубликованной базы, в атрибуте ib: там строка Srvr=…;Ref=…. GUID в публикации не используется, только имя базы в кластере.