Клиент-серверная 1С по локальной сети: от строки Srvr до проверки портов

· 9 мин

Содержание

Чтобы подключиться к серверу 1С в сети, в окне запуска нажмите «Добавить», выберите вариант «На сервере 1С:Предприятия» и укажите имя компьютера с сервером (например, srv-1c) и имя базы в кластере (например, buh). Для этого с рабочего места должны быть открыты TCP-порты 1540, 1541 и диапазон 1560–1591, а версия платформы на клиенте должна совпадать с версией сервера до последней цифры.

Типичная ситуация: администратор перенёс базу с файлового варианта на сервер, у себя всё открывается, а у бухгалтера в соседнем кабинете висит «Сервер 1С:Предприятия не обнаружен». Почти всегда дело в одном из трёх: закрытый порт, имя сервера не разрешается по сети или разные версии платформы. Ниже — как устроено соединение и как найти слабое звено за 10–15 минут.

Как клиент 1С находит сервер: агент, менеджер и рабочие процессы

Клиент-серверная 1С — это не одно соединение, а цепочка. Если понимать её порядок, диагностика сводится к проверке звеньев по очереди.

  1. 🔹 Агент сервера (ragent) слушает порт 1540. К нему обращается консоль администрирования и сам кластер при регистрации.
  2. 🔹 Менеджер кластера (rmngr) слушает порт 1541. Клиент приходит сюда, называет имя базы и получает адрес рабочего процесса.
  3. 🔹 Рабочий процесс (rphost) берёт порт из диапазона, по умолчанию 1560–1591. Именно с ним клиент дальше обменивается данными весь сеанс.

Из этой схемы следуют два практических вывода.

  • ⚠️ Открыть только 1541 недостаточно. Клиент подключится к менеджеру, получит адрес рабочего процесса и упадёт при попытке до него достучаться.
  • ⚠️ Менеджер возвращает клиенту имя рабочего сервера, под которым тот зарегистрирован в кластере. Если клиент не может разрешить это имя в IP-адрес, соединение не состоится, даже если вы вводили сервер по IP.

Сервер СУБД (MS SQL или PostgreSQL) в этой цепочке клиенту не нужен. С базой данных разговаривает только рабочий процесс 1С, поэтому порты 1433 или 5432 на рабочих местах открывать не требуется.

КомпонентПроцессПорт по умолчаниюКто подключается
Агент сервераragent1540Консоль кластера, служебные обращения
Менеджер кластераrmngr1541Клиенты 1С, конфигуратор
Рабочие процессыrphost1560–1591Клиенты 1С в течение сеанса
Сервер администрированияras1545Утилита rac, сторонние консоли

Диапазон портов рабочих процессов задаётся в консоли кластера в свойствах рабочего сервера (поле «Диапазон IP портов»), а не в свойствах кластера. Если его там сузили или сдвинули, открывайте в брандмауэре именно его.

Подключение к серверу 1С в окне запуска: добавляем базу

Порядок действий на рабочем месте пользователя:

  1. Запустите 1С и в окне со списком баз нажмите Добавить.
  2. Выберите «Добавление в список существующей информационной базы» и нажмите Далее.
  3. Введите понятное пользователю название, например «Бухгалтерия (сервер)».
  4. Отметьте вариант расположения «На сервере 1С:Предприятия».
  5. В поле «Кластер серверов 1С:Предприятия» укажите имя сервера: srv-1c.
  6. В поле «Имя информационной базы в кластере» — имя базы так, как оно записано в кластере: buh.
  7. Нажмите Далее, выберите тип клиента (тонкий клиент подходит для большинства задач) и Готово.

Строка подключения, которую 1С сохранит, выглядит так:

Srvr="srv-1c";Ref="buh";

Если кластер работает на нестандартном порту

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

Srvr="srv-1c:2541";Ref="buh";

Порт 1541 писать не нужно: он подставляется по умолчанию.

Где взять точное имя базы

Имя в кластере не обязано совпадать с именем базы в SQL и с названием в списке пользователя. Посмотрите его в консоли администрирования серверов 1С: раскройте кластер → «Информационные базы». Без консоли выручит утилита rac, если на сервере запущен ras:

rac srv-1c:1545 cluster list
rac srv-1c:1545 infobase summary list --cluster=<UUID кластера>

Первая команда покажет UUID кластера, вторая — имена баз. Регистр в имени базы при подключении значения не имеет, а лишний пробел или опечатка — имеет.

Проверка сетевой доступности сервера 1С и его портов

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

Шаг 1. Разрешается ли имя

ping srv-1c
nslookup srv-1c

Если ping по имени не проходит, а по IP проходит — проблема в DNS. Временное решение — строка в файле C:\Windows\System32\drivers\etc\hosts:

192.168.1.10    srv-1c

Правильное решение — запись в DNS-сервере сети, чтобы не править hosts на каждом рабочем месте.

ICMP часто запрещён брандмауэром. Неудачный ping по IP ещё не значит, что сервер недоступен. Решающая проверка — порты.

Шаг 2. Открыты ли порты

В PowerShell на рабочем месте:

Test-NetConnection srv-1c -Port 1540
Test-NetConnection srv-1c -Port 1541
Test-NetConnection srv-1c -Port 1560

В выводе смотрите строку TcpTestSucceeded. Значение True — порт доступен. Проверьте хотя бы первый и пару портов из диапазона рабочих процессов.

Шаг 3. Слушает ли сервер эти порты

Это проверка уже на сервере. В Windows:

netstat -ano | findstr ":154"
netstat -ano | findstr ":156"

В Linux:

ss -tlnp | grep -E ':15(4|6)'

Если порта 1541 нет в списке, служба агента не запущена или кластер работает на другом порту. Проверьте службу «Агент сервера 1С:Предприятия 8.3» в оснастке «Службы» (в Linux — через systemctl status, имя юнита зависит от версии платформы).

Шаг 4. Совпадают ли версии

Версию сервера видно в имени папки, из которой запущен ragent, например C:\Program Files\1cv8\8.3.24.1548\bin\. На клиенте версию показывает окно «О программе» или список папок в C:\Program Files\1cv8\. Номера должны совпадать полностью, включая последние четыре цифры.

Диагностика: выберите симптом

Настройка брандмауэра Windows и Linux под сервер 1С

Порты открывают на сервере на входящие соединения. На рабочих местах исходящий трафик обычно и так разрешён.

Windows Server

Одной командой PowerShell от имени администратора:

New-NetFirewallRule -DisplayName "1C Server 8.3" -Direction Inbound -Protocol TCP -LocalPort 1540-1541,1560-1591 -Action Allow

Если нужен удалённый доступ к ras для консоли с другого компьютера, добавьте 1545 отдельным правилом. Чтобы не открывать порты всей сети, ограничьте правило подсетью рабочих мест параметром -RemoteAddress 192.168.1.0/24.

Linux (Ubuntu, Debian, RHEL-подобные)

Для ufw:

sudo ufw allow 1540:1541/tcp
sudo ufw allow 1560:1591/tcp

Для firewalld:

sudo firewall-cmd --permanent --add-port=1540-1541/tcp
sudo firewall-cmd --permanent --add-port=1560-1591/tcp
sudo firewall-cmd --reload

Особенность Linux: имя хоста в /etc/hosts

На Ubuntu и Debian установщик часто прописывает имя компьютера на адрес 127.0.1.1. Сервер 1С регистрирует рабочий сервер под этим именем, и клиенты получают от менеджера адрес, который ведёт на них самих. Внешне это выглядит как обрыв после первого шага соединения.

Исправление — указать в /etc/hosts реальный сетевой адрес сервера:

192.168.1.10    srv-1c

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

Промежуточные сетевые экраны

Если сервер и пользователи в разных подсетях или филиалах, порты должны быть открыты и на маршрутизаторе или межсетевом экране между ними. Типичный случай: в офисе всё работает, а через VPN нет. Значит, на VPN-шлюзе разрешён только RDP или общие папки.

Где закрыт портПризнакЧто делать
Брандмауэр сервераНе работает ни у кого, кроме самого сервераПравило на входящие на сервере
Шлюз между сетямиРаботает в одной подсети, не работает в другойПравило на маршрутизаторе или VPN-шлюзе
Антивирус клиента с сетевым экраномНе работает только у одного пользователяИсключение для 1cv8c.exe и 1cv8.exe

Файл ibases.v8i и другие способы раздать подключение пользователям

Добавлять базу руками на 30 рабочих мест долго. Есть способы быстрее.

Где хранится список баз

Список баз каждого пользователя Windows лежит в файле:

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

Это обычный текстовый файл. Запись о серверной базе в минимальном виде:

[Бухгалтерия (сервер)]
Connect=Srvr="srv-1c";Ref="buh";

Остальные строки (ID, OrderInList, Folder и другие) 1С допишет сама при первом открытии.

Способ 1. Разослать готовый .v8i

Сохраните фрагмент выше в файл с расширением .v8i и отправьте пользователю. Двойной щелчок по нему откроет 1С и предложит добавить базы в список. Удобно для разовой раздачи.

Способ 2. Общий список баз на сетевой папке

Положите файл, например \\fs\1c\bases.v8i, в папку с правом чтения для всех. В файле настроек запуска 1CEStart.cfg на рабочих местах добавьте строку:

CommonInfoBases=\\fs\1c\bases.v8i

Базы из общего файла появятся у пользователя в окне запуска автоматически. Добавили новую базу на сервер — правите один файл, а не 30 рабочих мест. Сам 1CEStart.cfg удобно раздать групповой политикой.

Способ 3. Ярлык с параметрами командной строки

Ярлык сразу на нужную базу, без окна выбора:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv-1c\buh"

Для нестандартного порта: /S"srv-1c:2541\buh". Ключ /S задаёт адрес серверной базы в формате «сервер\база».

СпособКогда подходитМинус
Ручное добавление1–3 рабочих местаДолго, легко опечататься
Файл .v8iРазовая раздача новой базыКаждый пользователь добавляет сам
Общий список через 1CEStart.cfgОфис от 10 мест, базы часто меняютсяНужна сетевая папка и настройка cfg
Ярлык с /SПользователю нужна ровно одна базаЯрлык придётся менять при переносе базы

Если по сети не подключается: веб-публикация и удалённый рабочий стол

Бывает, что открыть порты 1540–1591 нельзя: филиал в другом городе, сотрудник на удалёнке, служба безопасности против. Тогда есть два рабочих пути.

  • 🌐 Публикация базы на веб-сервере (IIS или Apache). Клиент подключается по HTTP или HTTPS, а с сервером 1С общается уже веб-сервер внутри сети. В окне добавления базы выбирается вариант «На веб-сервере», адрес вида https://1c.company.ru/buh. Наружу открывается один порт 443.
  • 🖥️ Удалённый рабочий стол (RDP или RemoteApp). Клиент 1С работает на терминальном сервере в одной сети с сервером 1С, а пользователь видит только картинку. Порты 1С наружу не нужны вообще.

Не пробрасывайте порты 1540–1591 из интернета на сервер 1С напрямую. Протокол не рассчитан на открытую сеть. Для удалённых сотрудников используйте VPN, веб-публикацию по HTTPS или RDP.

Частые вопросы о подключении к серверу 1С

Нужна ли на рабочем месте установка сервера 1С?
Нет. На клиенте ставится только клиентская часть платформы той же версии, что и сервер. Компоненты сервера нужны лишь на самом сервере.
Почему у администратора база открывается, а у пользователя нет?
Чаще всего администратор проверяет с самого сервера, где брандмауэр и DNS не участвуют. Повторите проверку портов с компьютера пользователя.
Можно ли указать сервер по IP-адресу вместо имени?
В строке подключения можно. Но менеджер кластера всё равно вернёт клиенту имя рабочего сервера, поэтому оно тоже должно разрешаться с рабочего места.
Где хранятся лицензии при работе с сервером 1С?
Клиентские лицензии можно активировать на сервере 1С: тогда их выдаёт кластер, а на рабочих местах лицензии не нужны. Сетевые порты для этого дополнительно открывать не требуется.
Сколько портов нужно открыть, если на сервере два кластера разных версий?
Для каждого кластера свои: агент, менеджер и диапазон рабочих процессов. Диапазоны не должны пересекаться, например 1560–1591 у первого и 2560–2591 у второго.