Как узнать, на каком сервере работает ваша база 1С

· 9 мин

Содержание

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

Если в карточке базы вместо сервера стоит путь вроде D:\Bases\Buh, у вас файловая база. Сервера у неё нет, и искать его не нужно. Как отличить одно от другого, читайте в первом разделе.

Сначала определите: файловая база или клиент-серверная

Всё решает строка подключения. Она бывает двух видов:

Вид базыКак выглядит строкаЧто искать
ФайловаяFile="D:\Bases\Buh";Папку с файлом 1Cv8.1CD
Клиент-сервернаяSrvr="app-01";Ref="buh_prod";Сервер app-01, базу buh_prod

Для клиент-серверной базы параметр Srvr — это и есть искомый сервер. Параметр Ref — имя базы в кластере. Если в Srvr указано два значения через двоеточие, например app-01:1541, число после двоеточия — порт менеджера кластера.

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

Если вы подключены к базе через веб-клиент, строки с Srvr вы в браузере не увидите. Адрес в браузере указывает на веб-сервер, а не на сервер 1С. Это два разных компьютера или хотя бы две разные службы.

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

Самый быстрый способ — окно запуска 1С. Там уже лежит всё, что нужно.

Окно запуска

  1. Откройте 1С и в списке баз выделите нужную.
  2. Нажмите «Изменить».
  3. Читайте первую страницу мастера. Для серверной базы там видны тип расположения «На сервере 1С:Предприятия», поле «Кластер серверов » и поле «Имя информационной базы в кластере».

Значение в поле «Кластер серверов» — это имя сервера, а при нестандартном порте ещё и номер порта.

Файл со списком баз

Список баз хранится в файле ibases.v8i. Для текущего пользователя Windows он лежит в каталоге данных приложения, в папке 1C\1CEStart. Быстро открыть его можно так:

notepad "%APPDATA%\1C\1CEStart\ibases.v8i"

Внутри текстовые блоки. У серверной базы есть строка Connect=Srvr="app-01";Ref="buh_prod";. Блоков может быть много, по одному на каждую базу из вашего списка. Ищите блок с названием нужной базы: имя в квадратных скобках совпадает с тем, что вы видите в окне запуска.

Ярлык на рабочем столе

Откройте свойства ярлыка 1С. В поле «Объект» после пути к 1cv8.exe идут параметры. Если там есть /S app-01\buh_prod, то до обратной косой черты стоит сервер, после неё — база. Если параметр /F — это файловая база. Если параметров нет, ярлык просто открывает список баз, а значит, смотрите окно запуска.

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

Консоль администрирования показывает серверы, кластеры и базы целиком. Это основной инструмент администратора, когда адрес надо не прочитать, а проверить.

Порядок такой:

  1. Запустите консоль администрирования серверов 1С:Предприятия. Она ставится вместе с платформой отдельным компонентом.
  2. Правой кнопкой по узлу «Центральные серверы 1С:Предприятия» выберите создание нового сервера.
  3. Введите имя или IP компьютера и порт. Агент сервера по умолчанию слушает 1540.
  4. Раскройте узел: появятся кластеры, а в кластере — «Информационные базы».

Если консоль просит зарегистрировать компонент и пишет об ошибке, вспомните приём, о котором забывают: консоль использует библиотеку radmin.dll, и при неудачной установке её нужно зарегистрировать вручную. Из командной строки с правами администратора:

regsvr32 "C:\Program Files\1cv8\8.3.25.1286\bin\radmin.dll"

Номер версии в пути подставьте свой — посмотрите, какая папка лежит в C:\Program Files\1cv8.

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

Через утилиту rac

На самом сервере есть консольная утилита rac. Ей можно спросить кластер, не открывая графическую консоль. Для работы нужен запущенный ras — служба удалённого администрирования.

ras cluster --port=1545
rac cluster list
rac infobase --cluster=<идентификатор кластера> summary list

Идентификатор кластера возьмите из вывода первой команды rac cluster list. Остальные параметры и подкоманды смотрите в справке: rac help. Не пытайтесь угадывать их по памяти.

Поиск сервера через службы Windows и реестр

Когда нужно найти сервер на незнакомой машине, начните с проверки, запущена ли на ней служба 1С. Откройте оснастку «Службы» (services.msc) и найдите строку, в названии которой есть «Агент сервера 1С:Предприятия 8.3». Если такая служба есть и запущена, этот компьютер — сервер 1С.

Полезные данные скрыты в свойствах службы. Двойной щелчок покажет «Исполняемый файл». В нём будет путь к ragent.exe и параметры запуска:

  • -port — порт агента (обычно 1540);
  • -regport — порт менеджера кластера (обычно 1541);
  • -range — диапазон портов рабочих процессов;
  • -d — каталог данных сервера, он же srvinfo.

То же самое можно прочитать в реестре. Раздел службы лежит в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services, нужная ветка называется по имени службы. Параметр ImagePath содержит ту же строку запуска.

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

Каталог srvinfo — это то место, где сервер хранит реестр кластеров и служебные файлы. Саму базу пользователей он не заменяет: данные лежат в СУБД.

Определение сервера по сети: порты и командная строка

Если вы не знаете, какой из компьютеров сети — сервер 1С, ищите открытый порт 1540.

На самом компьютере проверьте, слушает ли кто-то порты агента и менеджера кластера:

netstat -ano | findstr ":1540 :1541"
tasklist /fi "imagename eq ragent.exe"

Если процесс ragent.exe есть, а в netstat порты видны в состоянии LISTENING, сервер найден. Сопоставьте номер PID из netstat с PID в tasklist, чтобы убедиться, что порт держит именно агент 1С.

С рабочей станции проверьте доступность предполагаемого сервера PowerShell:

Test-NetConnection app-01 -Port 1540
Test-NetConnection app-01 -Port 1541

Результат TcpTestSucceeded : True значит, что порт отвечает. Если False, причин три: сервер выключен, служба не запущена или порт закрыт брандмауэром.

Под Linux картина такая же, команды другие:

ss -ltnp | grep -E '1540|1541'
systemctl status srv1cv83

Имя службы srv1cv83 типично для установки из пакета платформы; на вашей системе оно может отличаться.

Какие порты должны быть открыты

Клиент обращается сначала к агенту (1540), затем к менеджеру кластера (1541), затем к рабочим процессам в диапазоне, заданном в свойствах рабочего сервера. Если клиент видит 1540, но не может открыть базу , проверьте диапазон рабочих процессов. Брандмауэр часто пропускает два порта и режет остальное.

Определение сервера через журнал регистрации

Журнал регистрации — не лучший способ искать сервер, но он выручает, когда у вас есть доступ к базе, а вот к настройкам запуска нет.

Откройте журнал: «Администрирование» → «Поддержка и обслуживание» → «Журнал регистрации». Если у вас нестандартный интерфейс, в Конфигураторе та же команда лежит в меню «Администрирование». В таблице событий включите колонки «Компьютер», «Рабочий сервер», «Основной IP порт» и «Вспомогательный IP порт». Колонки добавляются через настройку отбора и вида журнала.

Что вы получите:

  • в колонке «Компьютер» — имя рабочей станции, с которой работал пользователь;
  • в колонке «Рабочий сервер» — имя сервера, на котором выполнялся сеанс;
  • порты показывают, какой рабочий процесс обслужил сеанс.

Пример: у события входа пользователя «Иванов» в колонке «Рабочий сервер» стоит app-01. Значит, он работал на сервере app-01. Это надёжнее, чем гадать по ярлыкам, потому что журнал фиксирует реальное подключение.

Если в организации несколько серверов, в журнале разные сеансы могут оказаться на разных машинах. Это нормально для кластера из нескольких рабочих серверов — не ошибка.

Облако, терминальный сервер и веб-доступ

В этих схемах адрес «сервера» зависит от того, о каком сервере вы спрашиваете.

СхемаЧто видит пользовательГде искать сервер 1С
Терминальный сервер (RDP)Рабочий стол на удалённой машине1С запущена на терминальном сервере; серверную базу ищите в списке баз внутри сеанса RDP
Публикация RemoteAppОдно окно 1С без рабочего столаТак же, в ярлыке или списке баз на терминальном сервере
Веб-клиентАдрес в браузереВеб-сервер публикует базу; настройки лежат в файле публикации default.vrd
Облачная 1С у провайдераСсылка и логинПрямого адреса сервера нет; уточните у провайдера

Публикацию веб-клиента смотрите в файле default.vrd в папке, которую публиковали. В нём в атрибуте ib задана строка подключения, включая Srvr и Ref. Это единственный надёжный способ узнать, к какому серверу 1С ходит веб-сервер.

Для облака у вас обычно нет доступа к кластеру. Ориентируйтесь на то, что скажет провайдер: имя сервера и порт он обязан сообщить, если вы подключаетесь тонким клиентом. Если провайдер даёт только ссылку, значит, работа идёт через веб-доступ.

Почему не удаётся подключиться: типичные ошибки с адресом

Найти сервер мало, нужно ещё правильно записать его адрес. Вот что ломается чаще всего.

  • ❌ Имя сервера не разрешается. Клиент не знает app-01, потому что DNS не настроен. Подставьте IP-адрес или запишите имя в файл hosts. Проверка: ping app-01.
  • ❌ Перепутаны Srvr и Ref. В Srvr идёт компьютер, в Ref — база. Если поменять местами, платформа напишет, что кластер не найден.
  • ❌ Лишний порт. Если в Srvr указан app-01:1540, платформа пытается подключиться к менеджеру кластера через порт агента. Порт 1541 — менеджер, 1540 — агент. В поле «Кластер серверов» обычно достаточно имени сервера.
  • ❌ Не совпадает разрядность или версия платформы. Клиент 8.3.22 подключается к серверу той же ветки. Если клиент и сервер расходятся по версии, платформа сообщит об этом при входе.
  • ❌ Брандмауэр режет диапазон портов. 1540 открыт, 1541 открыт, рабочие процессы недоступны. Откройте весь диапазон из параметра -range.

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

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

Можно ли найти сервер 1С, если я знаю только имя базы?
Да, но только через список баз в окне запуска или через ярлык. Имя базы само по себе сервер не называет. Если есть доступ к кластеру, консоль покажет базу в узле «Информационные базы».
Чем «Агент сервера» отличается от «Менеджера кластера»?
Агент (ragent) запускается как служба и принимает первые подключения на порту 1540. Менеджер кластера (rmngr) управляет рабочими процессами и слушает порт 1541. Клиент обращается к ним последовательно.
Как узнать IP сервера 1С по его имени?
Выполните nslookup app-01 или ping app-01 с любого компьютера сети. Имя app-01 замените на ваше.
Сервер 1С и сервер СУБД — это одно и то же?
Не обязательно. Служба 1С может работать на одном компьютере, а PostgreSQL или SQL Server — на другом. В консоли администрирования сервер СУБД виден в свойствах информационной базы.
Как проверить, что база файловая, если путь к ней сетевой?
Если в строке подключения стоит File= с путём вида \\fileserver\bases\buh, база файловая. Сервер 1С ей не нужен, даже если файл физически лежит на сервере в сети.