Клиент-серверная 1С по локальной сети: от строки Srvr до проверки портов
Содержание
Чтобы подключиться к серверу
1С в сети, в окне запуска нажмите «Добавить», выберите вариант «На сервере 1С:Предприятия» и укажите имя компьютера с сервером (например, srv-1c) и имя базы в кластере (например, buh). Для этого с рабочего места должны быть открыты TCP-порты 1540, 1541 и диапазон 1560–1591, а версия платформы на клиенте должна совпадать с версией сервера до последней цифры.
Типичная ситуация: администратор перенёс базу с файлового варианта на сервер, у себя всё открывается, а у бухгалтера в соседнем кабинете висит «Сервер 1С:Предприятия не обнаружен». Почти всегда дело в одном из трёх: закрытый порт, имя сервера не разрешается по сети или разные версии платформы. Ниже — как устроено соединение и как найти слабое звено за 10–15 минут.
Как клиент 1С находит сервер: агент, менеджер и рабочие процессы
Клиент-серверная 1С — это не одно соединение, а цепочка. Если понимать её порядок, диагностика сводится к проверке звеньев по очереди.
- 🔹 Агент сервера (
ragent) слушает порт1540. К нему обращается консоль администрирования и сам кластер при регистрации. - 🔹 Менеджер кластера (
rmngr) слушает порт1541. Клиент приходит сюда, называет имя базы и получает адрес рабочего процесса. - 🔹 Рабочий процесс (
rphost) берёт порт из диапазона, по умолчанию1560–1591. Именно с ним клиент дальше обменивается данными весь сеанс.
Из этой схемы следуют два практических вывода.
- ⚠️ Открыть только
1541недостаточно. Клиент подключится к менеджеру, получит адрес рабочего процесса и упадёт при попытке до него достучаться. - ⚠️ Менеджер возвращает клиенту имя рабочего сервера, под которым тот зарегистрирован в кластере. Если клиент не может разрешить это имя в IP-адрес, соединение не состоится, даже если вы вводили сервер по IP.
Сервер СУБД (MS SQL или PostgreSQL) в этой цепочке клиенту не нужен. С базой данных разговаривает только рабочий процесс 1С, поэтому порты 1433 или 5432 на рабочих местах открывать не требуется.
| Компонент | Процесс | Порт по умолчанию | Кто подключается |
|---|---|---|---|
| Агент сервера | ragent | 1540 | Консоль кластера, служебные обращения |
| Менеджер кластера | rmngr | 1541 | Клиенты 1С, конфигуратор |
| Рабочие процессы | rphost | 1560–1591 | Клиенты 1С в течение сеанса |
| Сервер администрирования | ras | 1545 | Утилита rac, сторонние консоли |
Диапазон портов рабочих процессов задаётся в консоли кластера в свойствах рабочего сервера (поле «Диапазон IP портов»), а не в свойствах кластера. Если его там сузили или сдвинули, открывайте в брандмауэре именно его.
Подключение к серверу 1С в окне запуска: добавляем базу
Порядок действий на рабочем месте пользователя:
- Запустите 1С и в окне со списком баз нажмите Добавить.
- Выберите «Добавление в список существующей информационной базы» и нажмите Далее.
- Введите понятное пользователю название, например «Бухгалтерия (сервер)».
- Отметьте вариант расположения «На сервере 1С:Предприятия».
- В поле «Кластер серверов
1С:Предприятия» укажите имя сервера:
srv-1c. - В поле «Имя информационной базы в кластере» — имя базы так, как оно записано в кластере:
buh. - Нажмите Далее, выберите тип клиента (тонкий клиент подходит для большинства задач) и Готово.
Строка подключения, которую 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С?
Почему у администратора база открывается, а у пользователя нет?
Можно ли указать сервер по IP-адресу вместо имени?
Где хранятся лицензии при работе с сервером 1С?
Сколько портов нужно открыть, если на сервере два кластера разных версий?
1560–1591 у первого и 2560–2591 у второго.