Администрирование · 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С прямой функции «имя базы» нет, но есть функция СтрокаСоединенияИнформационнойБазы(), возвращающая строку соединения текущего сеанса. Из неё извлекают путь к файловой базе или имя базы на сервере.
СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
// Для файловой базы: 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С и разверните нужный кластер
- 2Перейдите в раздел «Информационные базы» и найдите базу по имени Ref
- 3Откройте свойства базы двойным щелчком
- 4Спишите значения «Сервер баз данных» и «База данных» — это точные технические имена
- 5Проверьте совпадение в Management Studio или pgAdmin
Имя базы в веб-клиенте, тонком клиенте и публикации
При подключении через веб-сервер имя базы фигурирует в URL публикации: например, в адресе https://server/trade/ws/ фрагмент «trade» — это имя виртуального каталога, заданное при публикации (файл default.vrd). Оно не обязано совпадать ни с именем в кластере, ни с именем на SQL.
Посмотреть имя публикации можно в конфигурации веб-сервера (IIS или Apache) или в файле default.vrd в каталоге публикации. В параметре ib этого файла содержится полная строка соединения с реальным именем базы.
Сравнение вариантов
Быстро и без прав администратора, но показывает только имя в списке и строку подключения текущего пользователя
Подходит для кода и отчётов, требует разбора строки; даёт Ref, а не имя на SQL
Даёт полную картину включая имя базы данных на СУБД, но нужны права администратора кластера
Показывает физические базы данных, но не их связь с базами 1С — сопоставление делать вручную
Типичные ошибки и ограничения
Наиболее частая ошибка — использование отображаемого имени из списка баз в строках подключения обменов и внешних компонент. Название в списке произвольно и у разных пользователей разное; подключение по нему невозможно, нужна строка соединения.
Вторая ошибка — попытка получить имя базы через Метаданные.Имя. Это имя конфигурации, а не информационной базы: одна конфигурация может быть развёрнута в десятках баз с разными именами.
Проверка результата
После получения имени убедитесь, что оно соответствует реальной базе. Для файловой базы откройте указанный каталог — в нём должен лежать файл 1Cv8.1CD. Для серверной — сравните Ref из строки соединения со списком в консоли кластера, а имя БД — со списком баз на сервере СУБД.
Как проверить результат
В каталоге из строки соединения есть файл 1Cv8.1CD
Каталог пуст или не существует — путь устарел
Ref из строки соединения присутствует в списке баз консоли кластера
Имени нет в кластере — база удалена или кластер другой
База из свойств ИБ видна в консоли СУБД и доступна
Базы нет на сервере или она в состоянии offline
Частые вопросы
Можно ли получить имя базы, не открывая 1С?
Да. Список баз с именами и строками подключения хранится в файле ibases.v8i в профиле пользователя (AppData\Roaming\1C\1CEStart). Файл текстовый, открывается любым редактором. Для серверных баз имя также видно в консоли кластера без запуска клиента.
Чем отличается имя базы в кластере от имени базы данных на SQL?
Имя в кластере (Ref) — логическое имя, по которому сервер 1С адресует подключения. Имя базы данных — физическая база на сервере СУБД, где хранятся таблицы. Связь между ними задаётся в свойствах информационной базы в консоли кластера, и имена могут быть любыми.
Как программно определить, файловая база или серверная?
Проанализируйте результат функции СтрокаСоединенияИнформационнойБазы(): наличие подстроки «File=» означает файловый режим, «Srvr=» — клиент-серверный. В типовых конфигурациях используйте функцию ИнформационнаяБазаФайловая() из общего модуля ОбщегоНазначения.
Где задаётся заголовок, который виден в окне программы?
В конфигураторе: Администрирование → Параметры информационной базы → поле «Заголовок системы». В типовых конфигурациях это же значение меняется через интерфейс в настройках программы. Заголовок никак не связан с техническим именем базы.
Почему у разных пользователей одна база называется по-разному?
Название в списке стартера хранится локально в файле ibases.v8i каждого пользователя и задаётся при добавлении базы. Чтобы имена совпадали, распространяйте общий файл списка баз через сетевой ресурс или параметр запуска.
Опасно ли переименовать базу в списке стартера?
Нет. Это чисто отображаемое название, оно не влияет на подключение, данные и работу других пользователей. Опасно переименовывать каталог файловой базы или базу данных на SQL — это требует обновления строк соединения у всех пользователей и в кластере.
Что важно запомнить
«Имя базы» в 1С бывает четырёх видов: название в списке стартера, путь к файловой базе, Ref в кластере и имя базы данных на СУБД. Отображаемое имя смотрите в стартовом окне или ibases.v8i, техническое — через СтрокаСоединенияИнформационнойБазы() и консоль кластера. Для подключений используйте только строку соединения, а переименование физических баз выполняйте после резервного копирования.