К статье
Практический материал

Администрирование · 9 мин

Как получить GUID информационной базы 1С

Как узнать GUID (уникальный идентификатор) информационной базы 1С: через консоль кластера, утилиту rac, COM-соединение и обработку. Пошаговые инструкции и типичные ошибки.

GUID (уникальный идентификатор) информационной базы 1С требуется при настройке внешних подключений, интеграций через COM и веб-сервисы, при работе с планами обмена, а также при диагностике ситуаций, когда две базы оказались копиями друг друга. Идентификатор присваивается базе при создании и не меняется при обновлении конфигурации, переносе на другой сервер или смене имени.

Получить GUID можно несколькими способами: через консоль администрирования кластера серверов 1С, через утилиту командной строки rac, через COM-соединение и программно из встроенного языка. Выбор способа зависит от типа базы (файловая или клиент-серверная) и от того, есть ли у вас права администратора кластера.

Важно понимать: GUID информационной базы — это не идентификатор объекта конфигурации и не GUID ссылки на элемент справочника. Это отдельный идентификатор, который платформа хранит на уровне самой базы, и штатной кнопки «показать GUID» в пользовательском интерфейсе нет.

Что такое GUID базы и когда он нужен

GUID информационной базы — это 36-символьный идентификатор вида 12345678-1234-1234-1234-1234567890ab, который платформа 1С генерирует при создании базы. Он используется механизмами обмена данными для определения, с какой именно базой настроена синхронизация, и внешними системами для однозначной идентификации подключения.

Типичные ситуации, когда нужен GUID базы:

  • настройка обмена данными и проверка, не «переехала» ли база-корреспондент;
  • проверка, является ли база копией другой базы (у копии GUID совпадает с оригиналом);
  • настройка интеграций, где внешняя система привязывается к конкретной базе;
  • диагностика ошибок вида «база данных не является узлом распределенной ИБ» или конфликтов при восстановлении из копии.

Способ 1: консоль администрирования кластера серверов

Самый простой способ для клиент-серверной базы — посмотреть GUID в консоли администрирования серверов 1С (MMC-оснастка). Способ подходит, если у вас есть доступ к серверу и права администратора кластера.

Порядок действий в консоли кластера
  1. 1
    Откройте консоль «Администрирование серверов 1С:Предприятия» на сервере или на машине администратора
  2. 2
    Разверните нужный кластер и ветку «Информационные базы»
  3. 3
    Найдите базу по имени и откройте её свойства (двойной щелчок или контекстное меню)
  4. 4
    Скопируйте значение поля «Идентификатор информационной базы» — это и есть GUID

Если в списке много баз с похожими именами, ориентируйтесь на имя базы данных в СУБД и строку подключения, а не только на отображаемое имя — имена в консоли кластера могут не совпадать с именами в списке баз пользователей.

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

Способ 2: утилита командной строки rac

Для автоматизации и работы без графической консоли используется штатная утилита rac из каталога bin сервера 1С. Она позволяет запросить сведения об информационной базе, включая её идентификатор.

Сначала получите список баз кластера, затем — подробную информацию по нужной. В выводе команды будет поле с идентификатором базы.

bash
rac infobase summary list --cluster=<ид_кластера>
rac infobase info --cluster=<ид_кластера> --infobase=<ид_базы>

Идентификатор кластера можно узнать командой rac cluster list. Если на кластере установлена аутентификация, добавьте параметры --cluster-user и --cluster-pwd. Утилита удобна для скриптов мониторинга: GUID можно получать и сравнивать автоматически, например чтобы контролировать, что рабочая база не была заменена копией.

Способ 3: через COM-соединение

Универсальный способ, который работает и для файловых баз, — подключиться через COM-коннектор и прочитать свойство идентификатора базы. Для этого на компьютере должна быть установлена платформа 1С той же версии и разрядности, что и база, а у пользователя — права на подключение.

Пример кода на встроенном языке 1С, который подключается к другой базе и возвращает её GUID:

Коннектор = Новый COMObject("V83.COMConnector");

СтрокаПодключения = "File=""C:\Bases\Trade"";Usr=""Администратор"";";

Соединение = Коннектор.Connect(СтрокаПодключения);

ГУИДБазы = Соединение.InfoBaseID;

Сообщить(ГУИДБазы);

Для серверной базы строка подключения выглядит как Srvr="Server1";Ref="BaseName";. Свойство InfoBaseID возвращает строку с GUID без фигурных скобок. Этот же приём работает из скриптов на PowerShell, VBScript или любого языка, поддерживающего COM.

Типичные ошибки при COM-подключении
01
Несовпадение версии платформы: COM-коннектор версии 8.3.20 не подключится к базе, требующей другую версию, — проверьте установленные версии
02
Неправильная строка подключения: для файловой базы указан путь к папке, а не к файлу 1Cv8.1CD
03
Нет прав у пользователя: используйте учётную запись с правом на внешнее соединение
04
Разрядность: 32-битный скрипт не видит 64-битный COM-коннектор и наоборот

Способ 4: программно из самой базы

Во встроенном языке нет прямой функции «получить GUID текущей базы», но есть обходной путь: база может подключиться сама к себе через COM и прочитать InfoBaseID. Строку подключения к текущей базе возвращает функция СтрокаСоединенияИнформационнойБазы().

Коннектор = Новый COMObject("V83.COMConnector");

Соединение = Коннектор.Connect(СтрокаСоединенияИнформационнойБазы());

ГУИД = Соединение.InfoBaseID;

Такой код обычно оформляют как небольшую внешнюю обработку с кнопкой «Получить GUID» — её может запустить администратор или пользователь с достаточными правами. Учтите, что COM-подключение требует наличия клиента платформы на том компьютере, где выполняется код, поэтому на тонком и веб-клиенте способ не сработает.

Как проверить, что базы — копии, по GUID

Практическая ценность GUID в том, что у базы и её копии (созданной через копирование файла 1Cv8.1CD или восстановление бэкапа СУБД) идентификаторы совпадают. Это позволяет быстро отличить копию от независимой базы.

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

Эта проверка особенно важна перед настройкой обмена: если в качестве узла обмена ошибочно указать копию рабочей базы, синхронизация будет работать некорректно или приведёт к дублированию данных.

Контрольные точки

Как проверить результат

Формат полученной строки
Норма

36 символов с дефисами, шестнадцатеричные цифры

Тревожный признак

Пустая строка, ошибка COM или текст исключения

Сравнение двух баз
Норма

GUID различаются — базы независимы

Тревожный признак

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

Повторное получение
Норма

GUID стабилен при повторных запросах

Тревожный признак

Идентификатор меняется между запросами — проверьте, к той ли базе вы подключаетесь

Ограничения и частые проблемы

Для файловой базы нет штатного инструмента просмотра GUID без запуска платформы: идентификатор хранится внутри файла 1Cv8.1CD в недокументированном формате, и извлекать его сторонними средствами небезопасно. Используйте COM-подключение или обработку.

При работе через COM помните о лицензиях: каждое COM-подключение занимает клиентскую лицензию, а при массовых обращениях это может привести к ошибкам «не найдено свободной лицензии». Закрывайте соединение после получения данных.

Если база была создана путём копирования и вам нужно, чтобы она стала самостоятельной, простое получение GUID не поможет — идентификатор придётся менять осознанно, с перенастройкой всех обменов. Такую операцию лучше выполнять на тестовой копии и только с резервной копией.

Маршрут решения

Как выбрать способ

Серверная база и есть доступ к консоли кластераОткройте свойства базы в консоли администрирования — это быстрее всего
Нужна автоматизация или скрипт мониторингаИспользуйте rac infobase info или COM-соединение
Файловая база без сервера 1СПодключитесь через COM-коннектор или запустите обработку внутри базы
Нужен GUID изнутри прикладного кодаПодключитесь базой к самой себе через COM по строке СтрокаСоединенияИнформационнойБазы()

FAQ

Меняется ли GUID базы при обновлении конфигурации или платформы?

Нет. Идентификатор присваивается при создании базы и сохраняется при обновлениях конфигурации, смене версии платформы и переносе на другой сервер. Он изменится только при явной смене идентификатора администратором.

Можно ли узнать GUID файловой базы, открыв файл 1Cv8.1CD?

Штатного и безопасного способа нет: формат файла недокументирован. Правильный путь — подключиться к базе через COM-коннектор или запустить обработку внутри базы и прочитать InfoBaseID.

Чем GUID базы отличается от GUID ссылки на объект?

GUID ссылки идентифицирует конкретный объект (элемент справочника, документ) внутри базы. GUID информационной базы идентифицирует базу целиком и один для всех объектов в ней. Это разные уровни идентификации.

Занимает ли получение GUID через COM лицензию 1С?

Да, COM-подключение расходует клиентскую лицензию на время сеанса. После получения идентификатора соединение следует сразу освобождать, особенно при работе из скриптов в цикле.

Две базы показывают одинаковый GUID — это нормально?

Это означает, что одна база является копией другой (создана копированием файла или восстановлением бэкапа). Для обменов и интеграций это риск: внешние системы будут считать их одной базой. Если базы должны быть независимыми, идентификатор одной из них нужно осознанно сменить.

Итог

Что важно запомнить

GUID базы 1С проще всего посмотреть в свойствах информационной базы в консоли кластера. Для файловых баз и автоматизации используйте COM-соединение со свойством InfoBaseID или утилиту rac. Совпадение GUID у двух баз означает, что одна — копия другой; менять идентификатор без необходимости не следует.