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

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

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

Как узнать имя информационной базы 1С: через стартовое окно, параметры сеанса, функцию НСтр и код на встроенном языке. Способы для файловых и серверных баз.

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

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

Что считать именем информационной базы

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

Основные варианты: название в списке баз стартера (произвольное, задаёт пользователь), имя файловой базы (путь к каталогу с файлом 1Cv8.1CD), имя базы данных на сервере СУБД (MS SQL, PostgreSQL и др.), имя базы в кластере серверов 1С и заголовок системы, заданный в конфигураторе.

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

Самый простой способ — открыть стартовое окно (launcher) 1С:Предприятия. В списке информационных баз отображаются названия, под которыми базы зарегистрированы у текущего пользователя. Выделите базу — в нижней части окна будет показан путь подключения: для файловой базы это каталог, для серверной — сервер и имя базы в кластере.

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

Как изменить отображаемое имя

Выделите базу в списке и нажмите «Изменить». На первом шаге мастера поле с названием доступно для редактирования — это имя влияет только на отображение в списке и ни на что в самой базе. Менять его безопасно.

Программное получение имени базы встроенным языком

В коде на встроенном языке 1С прямой функции «имя базы» нет, но есть функция СтрокаСоединенияИнформационнойБазы(), возвращающая строку соединения текущего сеанса. Из неё извлекают путь к файловой базе или имя базы на сервере.

bsl
СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
// Для файловой базы: File="D:\Bases\Trade";
// Для серверной: Srvr="srv1c";Ref="trade_base";
Если СтрНайти(СтрокаСоединения, "File=") > 0 Тогда
    ИмяБазы = СтрЗаменить(СтрокаСоединения, "File=""", "");
    ИмяБазы = СтрЗаменить(ИмяБазы, """;", "");
Иначе
    ПозицияRef = СтрНайти(СтрокаСоединения, "Ref=""");
    ИмяБазы = Сред(СтрокаСоединения, ПозицияRef + 5);
    ИмяБазы = СтрЗаменить(ИмяБазы, """;", "");
КонецЕсли;

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

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

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

Имя базы данных на SQL-сервере можно проверить и напрямую: в SQL Server Management Studio список баз виден в обозревателе объектов, в PostgreSQL — командой \l в psql или через pgAdmin. Сопоставление с базой 1С делается по свойствам в консоли кластера, а не по совпадению названий.

Порядок действий для серверной базы
  1. 1
    Откройте консоль кластера серверов 1С и разверните нужный кластер
  2. 2
    Перейдите в раздел «Информационные базы» и найдите базу по имени Ref
  3. 3
    Откройте свойства базы двойным щелчком
  4. 4
    Спишите значения «Сервер баз данных» и «База данных» — это точные технические имена
  5. 5
    Проверьте совпадение в Management Studio или pgAdmin

Имя базы в веб-клиенте, тонком клиенте и публикации

При подключении через веб-сервер имя базы фигурирует в URL публикации: например, в адресе https://server/trade/ws/ фрагмент «trade» — это имя виртуального каталога, заданное при публикации (файл default.vrd). Оно не обязано совпадать ни с именем в кластере, ни с именем на SQL.

Посмотреть имя публикации можно в конфигурации веб-сервера (IIS или Apache) или в файле default.vrd в каталоге публикации. В параметре ib этого файла содержится полная строка соединения с реальным именем базы.

Сравнение вариантов

Стартовое окно 1С

Быстро и без прав администратора, но показывает только имя в списке и строку подключения текущего пользователя

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

Подходит для кода и отчётов, требует разбора строки; даёт Ref, а не имя на SQL

Консоль кластера

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

Консоль СУБД

Показывает физические базы данных, но не их связь с базами 1С — сопоставление делать вручную

Типичные ошибки и ограничения

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

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

Типичные ошибки
01
Использовать название из списка стартера для подключения — подключение не сработает, имя локально для пользователя
02
Путать Ref в кластере с именем базы на SQL — обмены и бэкапы настраиваются на неправильную базу
03
Искать имя базы в Метаданные.Имя — там имя конфигурации, общее для всех копий
04
Переименовывать базу данных на SQL напрямую без перенастройки свойств в консоли кластера — база 1С перестанет открываться

Проверка результата

После получения имени убедитесь, что оно соответствует реальной базе. Для файловой базы откройте указанный каталог — в нём должен лежать файл 1Cv8.1CD. Для серверной — сравните Ref из строки соединения со списком в консоли кластера, а имя БД — со списком баз на сервере СУБД.

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

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

Файловая база
Норма

В каталоге из строки соединения есть файл 1Cv8.1CD

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

Каталог пуст или не существует — путь устарел

Серверная база
Норма

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

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

Имени нет в кластере — база удалена или кластер другой

Имя на SQL
Норма

База из свойств ИБ видна в консоли СУБД и доступна

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

Базы нет на сервере или она в состоянии offline

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

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

Да. Список баз с именами и строками подключения хранится в файле ibases.v8i в профиле пользователя (AppData\Roaming\1C\1CEStart). Файл текстовый, открывается любым редактором. Для серверных баз имя также видно в консоли кластера без запуска клиента.

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

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

Как программно определить, файловая база или серверная?

Проанализируйте результат функции СтрокаСоединенияИнформационнойБазы(): наличие подстроки «File=» означает файловый режим, «Srvr=» — клиент-серверный. В типовых конфигурациях используйте функцию ИнформационнаяБазаФайловая() из общего модуля ОбщегоНазначения.

Где задаётся заголовок, который виден в окне программы?

В конфигураторе: Администрирование → Параметры информационной базы → поле «Заголовок системы». В типовых конфигурациях это же значение меняется через интерфейс в настройках программы. Заголовок никак не связан с техническим именем базы.

Почему у разных пользователей одна база называется по-разному?

Название в списке стартера хранится локально в файле ibases.v8i каждого пользователя и задаётся при добавлении базы. Чтобы имена совпадали, распространяйте общий файл списка баз через сетевой ресурс или параметр запуска.

Опасно ли переименовать базу в списке стартера?

Нет. Это чисто отображаемое название, оно не влияет на подключение, данные и работу других пользователей. Опасно переименовывать каталог файловой базы или базу данных на SQL — это требует обновления строк соединения у всех пользователей и в кластере.

Итог

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

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