Где искать, на каком сервере СУБД и в каком кластере 1С лежит ваша база

· 9 мин

Содержание

Быстрее всего сервер баз данных 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С (ярлык «1С:Предприятие»).
  2. Один раз щёлкните по нужной базе в списке.
  3. Внизу окна появится строка подключения, например: 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-битной платформы.

Шаги

  1. Откройте консоль, на узле «Central 1C:Enterprise 8.3 servers» вызовите контекстное меню → Создать → Центральный сервер 1С:Предприятия 8.3.
  2. Укажите имя из Srvr (из окна запуска) и порт агента — по умолчанию 1540.
  3. Раскройте сервер → Кластеры → кластер (обычно «Локальный кластер», порт 1541).
  4. Откройте Информационные базы, найдите базу по имени из Ref.
  5. Контекстное меню базы → Свойства. Консоль спросит логин и пароль администратора этой информационной базы (пользователя 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С

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

Свойства службы

  1. Нажмите Win+R, введите services.msc.
  2. Найдите службу «Агент сервера 1С:Предприятия 8.3» (в англоязычных установках — 1C:Enterprise 8.3 Server Agent (x86-64)).
  3. Откройте свойства. В поле «Исполняемый файл» будет строка запуска:
"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С: в нём перечислены информационные базы кластера и параметры их подключения к СУБД.

  1. Скопируйте файл в другую папку (работать с оригиналом не нужно).
  2. Откройте копию в Notepad++ или другом редакторе.
  3. Найдите поиском имя базы из 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С, а параметры подключения к СУБД хранит сервер 1С.
Сервер 1С и сервер СУБД могут быть одним компьютером?
Да, в небольших компаниях часто так и есть. Тогда в поле «Сервер баз данных» будет то же имя, localhost или имя экземпляра SQL на этой машине.
В строке подключения несколько серверов через запятую. Какой из них нужен?
Так указывают резервные серверы кластера. Подключайтесь консолью к первому — свойства баз в кластере одни для всех его серверов.
Где посмотреть версию сервера 1С?
В пути к ragent.exe в свойствах службы агента: папка 8.3.xx.xxxx в пути и есть версия платформы сервера.