Где искать, на каком сервере СУБД и в каком кластере 1С лежит ваша база
Содержание
Быстрее всего сервер баз данных 1С узнают так: в окне запуска выделяют базу и читают строку под списком — там будет Srvr="имя_сервера";Ref="имя_базы";. Это имя сервера 1С:Предприятия (кластера). А имя сервера СУБД (SQL Server или PostgreSQL), где физически лежат таблицы, показывает консоль администрирования: свойства информационной базы, поле «Сервер баз данных».
Путаница между этими двумя серверами — главная причина, почему поиск затягивается. Пользователь видит только кластер 1С. Сервер СУБД может быть той же машиной, а может стоять отдельно, в другой подсети. Ниже способы для обоих случаев: от рабочего места пользователя до консоли администратора и файлов на самом сервере.
Два сервера в клиент-серверной 1С: что именно вы ищете
В клиент-серверном варианте работы участвуют три звена:
- 🖥 Клиент — программа 1С на компьютере пользователя или терминальном сервере.
- ⚙️ Сервер 1С:Предприятия — служба агента (
ragent), менеджер кластера (rmngr) и рабочие процессы (rphost). Клиент обращается к агенту по порту 1540, затем к менеджеру кластера (1541) и рабочим процессам. - 🗄 Сервер СУБД — Microsoft SQL Server, PostgreSQL, IBM Db2 или Oracle. Здесь хранятся данные.
Клиент с СУБД напрямую не общается. Поэтому в настройках клиента имени сервера СУБД нет вообще — его знает только кластер 1С.
| Что нужно узнать | Где видно | Нужны права |
|---|---|---|
| Имя сервера 1С и базы в кластере | окно запуска, «О программе», ibases.v8i | нет |
| Сервер СУБД, тип СУБД, имя базы данных | консоль кластера, rac infobase info | администратор кластера и базы |
| Порты и каталог кластера | служба агента, реестр | локальный администратор сервера |
| Список всех баз кластера с их СУБД | файл 1CV8Clst.lst | доступ к файлам сервера |
Если база файловая, в строке подключения будет File="D:\Bases\Buh" — никакого сервера баз данных у неё нет, данные лежат в файле 1Cv8.1CD в указанной папке.
Как узнать сервер 1С на компьютере пользователя
Окно запуска
- Запустите 1С (ярлык «1С:Предприятие»).
- Один раз щёлкните по нужной базе в списке.
- Внизу окна появится строка подключения, например:
Srvr="srv-1c01";Ref="buh_main";.
Srvr — имя или IP-адрес сервера 1С. Если после имени стоит порт (srv-1c01:1641), кластер работает на нестандартном порту. Ref — имя информационной базы в кластере. Оно не обязано совпадать с именем базы данных в SQL.
Чтобы увидеть то же в форме, нажмите Изменить — на первом шаге будут поля «Кластер серверов 1С:Предприятия» и «Имя информационной базы в кластере».
Из открытой базы
В запущенной программе откройте Справка → О программе (значок вопроса или меню-«бутерброд» в правом верхнем углу). В окне есть строка «Информационная база» с той же строкой подключения. Способ выручает, когда базу добавили не через список, а запускают ярлыком с параметрами.
Программисту хватит одной строки в обработке или в окне «Вычислить выражение» отладчика:
Сообщить(СтрокаСоединенияИнформационнойБазы());
Файл ibases.v8i
Список баз пользователя хранится в текстовом файле:
%APPDATA%\1C\1CEStart\ibases.v8i
Откройте его блокнотом. Каждая база — блок в квадратных скобках, нужная строка начинается с Connect=:
[Бухгалтерия основная]
Connect=Srvr="srv-1c01";Ref="buh_main";
ID=...
Если в ibases.v8i пусто, а базы в окне запуска есть, список приходит из общего файла. Путь к нему записан в %APPDATA%\1C\1CEStart\1CEStart.cfg, в строках CommonInfoBases=. Откройте указанный там .v8i — строки подключения будут в нём.
Имя сервера можно превратить в IP командой nslookup srv-1c01 или ping srv-1c01. Пригодится, если сервер называется по-разному в DNS и в документации.
Консоль администрирования: где виден сервер СУБД
Это главный и самый надёжный способ узнать сервер баз данных 1С. Консоль показывает ровно то, что использует кластер при подключении к СУБД.
Подготовка
Консоль «Администрирование серверов 1С:Предприятия» ставится вместе с платформой, если отметить компонент администрирования. Если ярлык есть, а консоль не открывается или пустая, зарегистрируйте библиотеку нужной версии от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"
Номер версии подставьте свой — он должен совпадать с версией сервера. Для 64-битного сервера регистрируйте radmin.dll из 64-битной платформы.
Шаги
- Откройте консоль, на узле «Central 1C:Enterprise 8.3 servers» вызовите контекстное меню → Создать → Центральный сервер 1С:Предприятия 8.3.
- Укажите имя из
Srvr(из окна запуска) и порт агента — по умолчанию 1540. - Раскройте сервер → Кластеры → кластер (обычно «Локальный кластер», порт 1541).
- Откройте Информационные базы, найдите базу по имени из
Ref. - Контекстное меню базы → Свойства. Консоль спросит логин и пароль администратора этой информационной базы (пользователя 1С с полными правами).
В свойствах смотрите поля:
- Сервер баз данных — имя или адрес сервера СУБД. Для SQL Server с именованным экземпляром — вида
sql01\MSSQL2019, для PostgreSQL иногда с портом. - Тип СУБД — MSSQLServer, PostgreSQL, IBMDB2, OracleDatabase.
- База данных — имя базы на сервере СУБД.
- Пользователь сервера БД — учётная запись, под которой кластер ходит в СУБД.
Ничего не меняйте в этом окне, если цель — только посмотреть. Изменение поля «Сервер баз данных» и сохранение переключит кластер на другую СУБД для всех пользователей сразу. Закрывайте окно кнопкой отмены.
Если консоль просит пароль администратора кластера и его никто не знает, не пытайтесь пересоздать кластер. Обратитесь к тому, кто администрирует сервер: пароль кластера хранится в его настройках, и восстановить доступ можно остановкой службы и возвратом файла настроек кластера из резервной копии.
Командная строка: rac вместо консоли
Под этим разделом часто ищут «утилиту rmngr». Но rmngr — это процесс менеджера кластера, а не программа для запросов. Командная утилита администрирования называется rac, она лежит в каталоге bin платформы и работает через сервер администрирования ras (порт 1545 по умолчанию).
Запуск ras
Если сервер администрирования не установлен как служба, запустите его вручную на сервере 1С:
cd "C:\Program Files\1cv8\8.3.24.1548\bin"
ras cluster --port=1545
Окно не закрывайте, пока работаете с rac.
Запросы
Сначала получите идентификатор кластера:
rac localhost:1545 cluster list
Затем список баз с их идентификаторами:
rac localhost:1545 infobase summary list --cluster=<id_кластера>
И подробные свойства нужной базы:
rac localhost:1545 infobase info --cluster=<id_кластера> --infobase=<id_базы> --infobase-user=Админ --infobase-pwd=пароль
В выводе ищите строки dbms (тип СУБД), db-server (сервер баз данных) и db-name (имя базы в СУБД). Если на кластере задан администратор, добавьте --cluster-user и --cluster-pwd. Остальные параметры смотрите в справке rac help infobase.
На Linux та же утилита лежит в /opt/1cv8/x86_64/<версия>/, синтаксис команд одинаковый.
Проверить, что сервер 1С вообще работает и слушает порты, можно и без rac:
netstat -ano | findstr ":1540 :1541"
tasklist | findstr /i "ragent rmngr rphost"
Служба агента и реестр Windows на сервере 1С
Этот способ отвечает на другие вопросы: где установлен кластер, на каких портах он работает, где лежат его файлы. Сервер СУБД здесь не виден, но без каталога кластера не обойтись в следующем разделе.
Свойства службы
- Нажмите
Win+R, введитеservices.msc. - Найдите службу «Агент сервера 1С:Предприятия 8.3» (в англоязычных установках —
1C:Enterprise 8.3 Server Agent (x86-64)). - Откройте свойства. В поле «Исполняемый файл» будет строка запуска:
"C:\Program Files\1cv8\8.3.24.1548\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
Что из неё взять:
| Параметр | Значение |
|---|---|
путь к ragent.exe | версия платформы сервера |
-port | порт агента (его указывают в консоли) |
-regport | порт менеджера кластера |
-range | диапазон портов рабочих процессов |
-d | каталог данных кластера srvinfo |
На вкладке «Вход в систему» видно, от чьего имени работает служба. Это важно, если кластер не может подключиться к SQL Server с проверкой подлинности Windows.
Реестр
Ту же строку хранит раздел реестра службы:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (x86-64)
Параметр ImagePath. Через реестр удобно смотреть, если на сервере несколько служб агента разных версий: каждая — отдельный раздел в Services, имя раздела совпадает с именем службы. Посмотреть их списком можно командой:
sc query state= all | findstr /i "1C:Enterprise"
Реестр только читайте. Правка ImagePath и перезапуск службы обрывают сеансы всех пользователей и фоновые задания — такие действия делают вне рабочего времени и с согласия ответственного.
Файлы кластера, логи и сама СУБД
Когда консоль недоступна, а доступ к файлам сервера 1С есть, сведения о базах можно прочитать напрямую.
Реестр кластера 1CV8Clst.lst
В каталоге srvinfo (из параметра -d) есть папка reg_1541 — по номеру порта менеджера кластера. В ней лежит файл 1CV8Clst.lst. Это текстовый файл во внутреннем скобочном формате 1С: в нём перечислены информационные базы кластера и параметры их подключения к СУБД.
- Скопируйте файл в другую папку (работать с оригиналом не нужно).
- Откройте копию в Notepad++ или другом редакторе.
- Найдите поиском имя базы из
Ref. Рядом в той же записи будут тип СУБД, имя сервера СУБД, имя базы данных и пользователь.
Не редактируйте и не сохраняйте оригинал 1CV8Clst.lst — испорченный файл оставит кластер без списка баз.
Там же, в reg_1541, лежат папки с идентификаторами баз. Внутри — журнал регистрации (1Cv8Log) и служебные данные. Имя папки совпадает с идентификатором базы из rac infobase summary list, так можно сопоставить базу и её файлы.
Технологический журнал
Если включён технологический журнал (файл logcfg.xml в каталоге conf платформы), события подключения к СУБД содержат её адрес. Включать журнал только ради имени сервера нет смысла: способы выше быстрее.
Со стороны СУБД
Если сервер СУБД примерно известен, проверьте на нём, есть ли там ваша база:
-- Microsoft SQL Server
SELECT @@SERVERNAME;
SELECT name, create_date FROM sys.databases ORDER BY name;
-- PostgreSQL (psql)
SELECT datname FROM pg_database ORDER BY datname;
Базы 1С в SQL Server узнаются по таблицам с именами вида _Reference123, _Document45, _AccumRg67. Найти, какой сервер 1С подключён к базе прямо сейчас, помогает список активных соединений: в SQL Server — sys.dm_exec_sessions (столбец host_name), в PostgreSQL — pg_stat_activity (столбец client_addr).
Какой способ выбрать под вашу ситуацию
На Linux вместо служб Windows смотрите юниты systemd: systemctl list-units | grep -i 1c покажет службу сервера 1С, а ps aux | grep ragent — строку запуска с портами и каталогом данных (параметр -d).
Частые вопросы
Почему имя базы в 1С не совпадает с именем базы в SQL?
Ref — имя информационной базы в кластере 1С, «База данных» в свойствах — имя на сервере СУБД. Их задают отдельно при создании базы.Можно ли узнать сервер СУБД из самой программы 1С без консоли?
Сервер 1С и сервер СУБД могут быть одним компьютером?
localhost или имя экземпляра SQL на этой машине.В строке подключения несколько серверов через запятую. Какой из них нужен?
Где посмотреть версию сервера 1С?
ragent.exe в свойствах службы агента: папка 8.3.xx.xxxx в пути и есть версия платформы сервера.