Диагностика подключения к базе 1С: от сети до кластера
Содержание
Пользователь жмёт на базу в списке — и вместо окна «1С:Предприятие» получает «Ошибка при выполнении операции с информационной базой» или бесконечное колесо загрузки. Чтобы понять, где рвётся связь, идти нужно снизу вверх: сначала убедиться, что есть сеть до сервера, потом — что открыт нужный порт, потом — что отвечает сам кластер 1С.
Разберём проверку по слоям для обоих вариантов — файловой базы на сетевой папке и клиент-серверной базы на сервере «1С:Предприятие» 8.3. Команды ниже выполняются в обычной командной строке Windows (cmd) на компьютере пользователя, у которого проблема.
С чего начать: пинг и имя сервера
Первым делом проверьте, что компьютер вообще видит сервер по сети. Откройте командную строку и выполните:
ping имя_сервера
Если в ответ идут строки Ответ от ...: байт=32 время=1мс, узел доступен. Если Превышен интервал ожидания или Не удалось обнаружить узел — проблема не в 1С, а в сети или в разрешении имени.
ping может не проходить, даже когда сервер жив: ICMP часто закрыт фаерволом. Поэтому отсутствие пинга — повод проверить дальше, а не окончательный приговор.
Отдельно проверьте, что имя сервера разворачивается в правильный IP:
nslookup имя_сервера
Сверьте выданный адрес с тем, что реально у сервера (на самом сервере — команда ipconfig). Рассинхрон DNS — одна из самых частых причин «вчера работало, сегодня нет»: сервер сменил адрес, а на клиенте остался старый из кэша. Сбросить кэш
имён на клиенте:
ipconfig /flushdns
Если сервер в другой подсети или за маршрутизатором и пинг теряет пакеты через раз, посмотрите маршрут до него:
tracert имя_сервера
Длинная цепочка узлов с потерями на каком-то из них подскажет, что проблема в сетевом оборудовании между клиентом и сервером, а не в 1С. Это тот случай, когда диагностику дальше ведёт сетевой администратор.
Отдельно сверьте, что в окне запуска 1С указан правильный адрес. Для клиент-серверной базы в свойствах базы (кнопка Изменить) поле «Кластер серверов
» должно содержать актуальное имя или IP сервера «1С:Предприятие», а не старое. Для файловой — правильный каталог.
Проверка доступа к файловой базе
Файловая база — это папка с файлом 1Cv8.1CD на общем сетевом ресурсе. Здесь «соединение» означает сетевой доступ к папке и права на запись.
Проверьте по шагам:
- Откройте проводник и вставьте в адресную строку UNC-путь к базе целиком, например
\\server\bases\buh. Папка должна открыться без запроса пароля и без ошибки. - Убедитесь, что внутри лежит файл
1Cv8.1CD. Путь к базе в окне запуска 1С должен указывать ровно на эту папку. - Проверьте права: у пользователя должны быть доступ на изменение (чтение и запись), а не только чтение. 1С при входе создаёт служебные файлы блокировки
1Cv8.1CLи временные файлы, и без права записи вход оборвётся.
Файловую базу нельзя класть на диск, подключённый по DFS, в облачную синхронизируемую папку (OneDrive, Яндекс.Диск) или на NAS с агрессивным кэшированием. Это приводит к повреждению 1Cv8.1CD. Для сетевой работы файловую базу держат на обычной общей папке Windows-сервера.
Если папка открывается в проводнике, но 1С выдаёт ошибку — чаще всего дело в блокировке файла 1Cv8.1CD зависшим сеансом. Посмотрите, нет ли рядом файла блокировки 1Cv8.1CL, который остался от аварийно закрытого сеанса. Удалять его можно, только когда в базе точно никто не работает
: иначе оборвёте чужой сеанс и рискуете повредить данные.
Клиент-серверная база: агент, менеджер и рабочие процессы
В клиент-серверном варианте между клиентом и базой стоит кластер серверов «1С:Предприятие». Клиент не лезет в файл напрямую — он проходит цепочку:
- агент сервера (
ragent) — точка входа, порт 1540 по умолчанию; - менеджер кластера (
rmngr) — порт 1541; - рабочие процессы (
rphost) — динамический диапазон портов, по умолчанию 1560–1591.
Чтобы соединение состоялось, с клиента должны быть открыты как минимум порты 1540, 1541 и весь диапазон рабочих процессов. Проверить доступность порта можно так:
telnet имя_сервера 1540
Чёрный экран без текста или мигающий курсор — порт открыт и кто-то на нём слушает. Сообщение Не удалось открыть подключение... Сбой подключения — порт закрыт или служба не запущена.
Клиент telnet в Windows по умолчанию выключен. Включите его в Панель управления → Программы → Включение или отключение компонентов Windows → Клиент Telnet, либо используйте PowerShell:
Test-NetConnection имя_сервера -Port 1540
Строка TcpTestSucceeded : True означает, что порт доступен.
Проверьте каждый порт из списка: 1540, 1541 и несколько из диапазона 1560–1591. Если открыт только 1540, а остальные закрыты, клиент подключится к агенту, но не сможет начать работу с базой — соединение «подвиснет» на этапе авторизации.
Жива ли сама служба и кластер
На сервере откройте оснастку Администрирование серверов 1С Предприятия. Если в ней виден центральный сервер, кластер и внутри него нужная информационная база — кластер работает.
Если оснастка не подключается к центральному серверу, проверьте, что запущена служба агента сервера. В services.msc она называется примерно Агент сервера 1С:Предприятия 8.3 (1C:Enterprise 8.3 Server Agent). Состояние должно быть «Выполняется».
Перезапуск службы агента сервера обрывает сеансы всех пользователей всех баз этого кластера. Делайте это только в нерабочее время или по согласованию — не как первый шаг диагностики.
Из командной строки состояние кластера удобно смотреть утилитой администрирования rac. Безопасные команды только на чтение:
rac cluster list
rac infobase summary list --cluster=<идентификатор>
Первая выведет список кластеров с их идентификаторами, вторая — базы в выбранном кластере. Если не помните синтаксис конкретной подкоманды — смотрите встроенную справку rac help, не подбирайте параметры наугад.
Как читать сообщение об ошибке
Текст ошибки при входе подсказывает слой, на котором оборвалась цепочка:
- сообщение о том, что сервер «1С:Предприятия» не обнаружен, — клиент не достучался до агента на порту 1540: сервер выключен, служба не запущена или закрыт порт;
- ошибка установки соединения с сервером по таймауту — агент ответил, но дальше по цепочке (менеджер или рабочий процесс) связь не прошла: проверяйте порты 1541 и диапазон 1560–1591;
- «Ошибка СУБД» или упоминание сервера баз данных — сеть до сервера 1С в порядке, но сам сервер «1С:Предприятие» не смог соединиться со своей СУБД (PostgreSQL или MS SQL). Это уже не клиентская проблема — разбираться нужно на сервере.
Различать эти три случая важно: в первых двух чините сеть и порты на пути клиент → сервер, в третьем — соединение сервер → СУБД, куда клиент вообще не влияет.
Технологический журнал: когда простых проверок мало
Когда сеть и порты в порядке, а соединение всё равно рвётся, подробности даёт технологический журнал (ТЖ). Это текстовый лог событий платформы, который включается файлом настройки logcfg.xml.
Файл кладут в каталог conf установленной платформы (рядом с исполняемыми файлами, папка вида ...\1cv8\conf) — либо на сервере, либо на клиенте, смотря где ловим проблему. Минимальная конфигурация для разбора соединений — писать события подключений и исключений:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="C:\logs_1c" history="24">
<event>
<eq property="name" value="CONN"/>
</event>
<event>
<eq property="name" value="EXCP"/>
</event>
</log>
</config>
После сохранения файла платформа подхватывает настройку без перезапуска службы в течение примерно минуты. В папке C:\logs_1c появятся подкаталоги процессов с файлами логов.
На что смотреть:
- событие
CONN— установка и разрыв сетевых соединений; - событие
EXCP— исключения, то есть текст ошибки, который платформа получила в момент сбоя; - свойство
descrв строкеEXCPобычно содержит человекочитаемую причину: отказ в соединении, таймаут, проблема с сертификатом.
Технологический журнал быстро растёт — счёт идёт на гигабайты в час при широком отборе. Включайте его точечно, под конкретную проблему, и обязательно выключайте после диагностики, иначе забьёте диск. Для этого удалите или переименуйте logcfg.xml.
Фаервол и антивирус: что именно блокирует 1С
Если ping проходит, а telnet на порт 1540 — нет, трафик режет фаервол или антивирус. Проверьте оба конца.
На сервере в Брандмауэр Защитника Windows в режиме повышенной безопасности должны быть разрешающие правила для входящих подключений на порты 1540, 1541 и диапазон 1560–1591 (протокол TCP). Если правил нет — их добавляют вручную; создайте правило для входящего трафика по этим портам.
Антивирус с модулем сетевого экрана (Kaspersky, ESET, Dr.Web и другие) ведёт собственный список правил, независимый от брандмауэра Windows. Он может блокировать и порты, и сами процессы ragent.exe, rmngr.exe, rphost.exe.
Как быстро локализовать:
Проверять «в лоб», временно отключив фаервол на минуту, допустимо на тестовом стенде. На рабочем сервере, смотрящем в интернет, так не делают — лучше точечно открыть порты.
Соединение через VPN и терминальный сервер
При работе через VPN и RDP добавляются свои нюансы, которых нет в локальной сети.
VPN. Самая частая проблема — не закрытый порт, а разорванный MTU. Большие пакеты 1С не проходят через туннель, и соединение «залипает» на передаче данных: окно открылось, а документ не проводится. Проверьте доступность портов изнутри VPN теми же Test-NetConnection или telnet. Если порты открыты, а работа всё равно рвётся на больших операциях — проблема в размере пакета, её решает администратор VPN уменьшением MTU на туннеле.
Терминальный сервер (RDP). Здесь 1С запускается на самом терминальном сервере, а не на машине пользователя. Значит, проверять сеть и порты до сервера баз нужно с терминального сервера, а не с ноутбука пользователя. Пользователь видит лишь картинку рабочего стола.
Частый сценарий — публикация 1С как отдельного приложения RemoteApp. Если приложение не стартует, проверьте, что на терминальном сервере корректно запускается 1cestart.exe (стартёр 1С) и что в его списке есть нужная база. RemoteApp лишь транслирует окно того же стартёра.
При тонком клиенте через веб-сервер (публикация на IIS или Apache) порты кластера 1540–1591 клиенту вообще не нужны — он ходит по HTTP(S) на порт 80/443 веб-сервера. Проверяйте доступность именно веб-публикации, открыв её адрес в браузере.
Короткий порядок диагностики
Чтобы не метаться между слоями, идите по списку сверху вниз и останавливайтесь на первом, что не прошло.
Частые вопросы
Какие порты открыть для работы клиент-серверной базы 1С?
1540 (агент сервера), 1541 (менеджер кластера) и диапазон 1560–1591 (рабочие процессы). Если портов менеджера или рабочих процессов несколько, открывают все заданные в настройках кластера и рабочих серверов.Чем проверить порт, если telnet не установлен?
Test-NetConnection имя_сервера -Port 1540. Строка TcpTestSucceeded : True означает, что порт доступен. Устанавливать telnet при этом не нужно.ping до сервера не проходит — значит, сервер недоступен?
Test-NetConnection, а не только на ping.Соединение то есть, то пропадает — где искать?
CONN и EXCP и посмотрите причину разрыва в свойстве descr.Нужно ли открывать порты кластера для веб-клиента?
80 или 443 веб-сервера по HTTP(S). Порты кластера 1540–1591 нужны только толстому и тонкому клиенту, подключающимся к серверу 1С напрямую.