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

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

Как получить имя базы 1С: все рабочие способы

Как получить имя базы 1С: через стартовое окно, конфигуратор, код на встроенном языке и консоль СУБД. Разбираем файловый и клиент-серверный варианты работы.

Имя информационной базы 1С требуется в разных ситуациях: при подключении через COM, настройке обмена данными, написании скриптов резервного копирования, регистрации базы в кластере серверов или просто при передаче доступов коллеге. Проблема в том, что «имя базы» — не однозначное понятие: в файловом варианте это фактически путь к каталогу, а в клиент-серверном — имя базы данных на SQL-сервере, которое может отличаться от названия в списке баз пользователя.

Ниже разобраны все практические способы узнать имя базы: через интерфейс стартера, из конфигуратора, программно из встроенного языка 1С и со стороны СУБД. Отдельно рассмотрены частые ошибки, когда администратор путает имя базы в кластере, имя на SQL-сервере и отображаемое название в списке.

Что именно считается именем базы в 1С

Прежде чем искать имя, важно понять, какой из идентификаторов вам нужен, потому что у одной базы их несколько. В файловом варианте база — это каталог с файлом 1Cv8.1CD, и её «имя» для подключения — это путь к этому каталогу. В клиент-серверном варианте существуют три разных сущности: имя базы в кластере 1С (Ref), имя базы данных на SQL-сервере и отображаемое название в списке баз пользователя, которое задаётся произвольно и ни с чем не связано технически.

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

Как узнать имя базы через стартовое окно 1С

Самый простой способ, не требующий никаких прав, — посмотреть параметры в списке информационных баз. Запустите 1С (файл 1cestart.exe), выделите нужную базу в списке. В нижней части окна отобразится строка подключения: для файловой базы это путь вида File="\\Server\Bases\Trade", для серверной — параметры вида Srvr="Server1C";Ref="TradeDB".

Порядок действий в стартовом окне
  1. 1
    Запустите 1С через ярлык или 1cestart.exe
  2. 2
    Выделите нужную базу в списке одним щелчком
  3. 3
    Посмотрите строку подключения внизу окна
  4. 4
    Для серверной базы выпишите значения Srvr (сервер) и Ref (имя базы в кластере)
  5. 5
    При необходимости нажмите кнопку настройки, чтобы увидеть все параметры подключения

Если база подключена через веб-сервер, в строке будет указан адрес вида ws="http://server/base/ws" или путь публикации. В этом случае имя базы на сервере напрямую из стартера не видно — потребуется один из способов ниже.

Как получить имя базы программно из кода 1С

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

bsl
СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
// Результат для файловой базы:
// File="C:\Bases\Accounting";
// Результат для серверной базы:
// Srvr="AppServer";Ref="AccountingDB";

Чтобы извлечь само имя, строку разбирают по разделителям. Для серверной базы достаточно найти параметр Ref между кавычками. Для файловой — взять путь из параметра File и при необходимости выделить имя каталога. Удобно оформить это отдельной функцией в общем модуле.

bsl
Функция ИмяТекущейБазы() Экспорт
    Строка = СтрокаСоединенияИнформационнойБазы();
    Если СтрНайти(Строка, "Ref=") > 0 Тогда
        Начало = СтрНайти(Строка, "Ref=""") + 5;
        Конец = СтрНайти(Строка, """;", , Начало);
        Возврат Сред(Строка, Начало, Конец - Начало);
    Иначе
        Возврат Строка; // файловая база — возвращаем путь
    КонецЕсли;
КонецФункции

Дополнительно различают тип базы через функцию ИнформационнаяБазаФайловая() из стандартной подсистемы БСП (в типовых конфигурациях) — она возвращает Истина для файлового варианта. Это удобно, когда логика должна ветвиться в зависимости от режима работы.

Как узнать имя базы в конфигураторе и через параметры запуска

В конфигураторе имя базы видно в заголовке окна — там отображается строка подключения. Также можно открыть меню «Администрирование» → «Параметры информационной базы», где для клиент-серверного варианта указываются сервер и имя базы в кластере.

Ещё один источник — файлы списков баз. Стартер хранит настройки в файле ibases.v8i в профиле пользователя (обычно в каталоге AppData\Roaming\1C\1CEStart). Это текстовый файл, где для каждой базы прописаны секции с параметрами Connect. Его удобно просматривать скриптом, если нужно собрать информацию по всем базам на компьютере или терминальном сервере.

Как узнать имя базы на сервере 1С и в СУБД

В клиент-серверном варианте имя базы в кластере смотрят в консоли администрирования серверов 1С. Откройте консоль, разверните нужный кластер, перейдите в ветку «Информационные базы» — в списке будут имена баз (Ref) и соответствующие им базы данных на СУБД. Двойной щелчок по базе открывает свойства, где указано имя базы данных, сервер СУБД и тип СУБД.

Если доступа к консоли 1С нет, но есть доступ к SQL-серверу, имя базы данных можно найти штатными средствами СУБД: в SQL Server — через список баз в Management Studio, в PostgreSQL — через pgAdmin или запрос к списку баз. Учтите, что одна база 1С всегда соответствует одной базе данных СУБД, но по имени на SQL-сервере нельзя надёжно определить, к какой базе 1С она привязана, — привязку хранит кластер.

Где искать имя в зависимости от варианта работы

Файловая база

Имя — это путь к каталогу с файлом 1Cv8.1CD. Смотрите строку подключения в стартере или файле ibases.v8i.

Серверная база (есть доступ к консоли)

Имя Ref смотрите в консоли администрирования кластера 1С, имя базы данных СУБД — в свойствах базы.

Серверная база (нет доступа к консоли)

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

Подключение через веб-сервер

В стартере виден только URL публикации; имя базы получайте программно или у администратора веб-сервера.

Типичные ошибки и риски при работе с именем базы

Самая распространённая ошибка — использовать отображаемое название из списка баз в скриптах и настройках обмена. Пользователь переименует базу в списке, и интеграция перестаёт работать, хотя «ничего не меняли». Вторая частая ситуация — путаница между именем базы в кластере и именем базы данных на SQL-сервере: они часто совпадают, но это не гарантировано, особенно после восстановления из бэкапа.

Типичные ошибки
01
Использование отображаемого названия из списка баз в скриптах — оно произвольное и легко меняется
02
Путаница между Ref в кластере и именем базы данных на SQL-сервере — после восстановления из бэкапа они могут различаться
03
Копирование строки подключения с тестовой базы в боевую настройку — обмен молча уходит не туда
04
Хранение имени базы в коде без проверки — при переносе базы на другой сервер процедура работает с неверными данными

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

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

Как проверить, что имя получено верно

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

Содержит Srvr и Ref для серверной базы или File для файловой

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

Отображается только URL веб-публикации — имя нужно получать другим способом

Совпадение Ref и имени базы СУБД
Норма

В консоли кластера в свойствах базы указано ожидаемое имя базы данных

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

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

Результат функции в коде
Норма

Функция возвращает имя боевой базы, а не тестовой копии

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

Возвращается путь к локальному каталогу — код выполняется в файловой копии

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

Можно ли узнать имя базы 1С без прав администратора?

Да. Строку подключения видит любой пользователь в стартовом окне, а функция СтрокаСоединенияИнформационнойБазы() не требует административных прав. Доступ к консоли кластера и свойствам базы на СУБД — вот что требует отдельных полномочий.

Чем имя базы в кластере отличается от имени базы данных SQL?

Имя в кластере (Ref) — это идентификатор, по которому сервер 1С адресует подключения. Имя базы данных — это объект на SQL-сервере, где физически хранятся таблицы. При создании базы их обычно делают одинаковыми, но технически это независимые значения, и после восстановления из бэкапа они могут разойтись.

Как узнать имя базы, если подключение идёт через веб-сервер?

Из стартового окна виден только адрес публикации. Используйте функцию СтрокаСоединенияИнформационнойБазы() в коде — она вернёт реальную строку соединения. Либо уточните у администратора, какая база опубликована под данным именем в файле default.vrd на веб-сервере.

Где хранится список баз на компьютере пользователя?

В файле ibases.v8i в каталоге профиля пользователя (обычно AppData\Roaming\1C\1CEStart). Это текстовый файл, где каждая база описана секцией с параметром Connect, содержащим строку подключения.

Можно ли переименовать базу 1С?

Отображаемое название в списке — свободно, это ни на что не влияет. Имя базы в кластере меняется через консоль администрирования 1С. Имя базы данных на SQL-сервере переименовывать напрямую средствами СУБД нельзя — связь с кластером будет потеряна; сначала измените параметры в консоли 1С.

Как получить имя базы для COM-подключения из внешней программы?

Для COM-коннектора нужна та же строка соединения: File="путь" для файловой базы или Srvr="сервер";Ref="имя" для серверной. Возьмите её из стартового окна или файла ibases.v8i — значения полностью совпадают с тем, что ожидает метод Connect.

Итог

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

Имя базы 1С надёжнее всего брать из строки подключения: в стартовом окне, файле ibases.v8i или программно через СтрокаСоединенияИнформационнойБазы(). Отображаемое название в списке — просто подпись. В серверном варианте различайте имя базы в кластере (Ref) и имя базы данных на SQL-сервере, а любые переименования выполняйте только через консоль администрирования 1С.