Как исправить ошибку сетевого доступа к серверу 1С: Windows Sockets - 10054?

Системный администратор 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

Ошибка 10054 (0x00002746) — одна из самых коварных в практике системного администратора 1С. Она расшифровывается как "Удаленный хост принудительно разорвал существующее подключение". Это означает, что клиентское приложение 1С пыталось обменяться данными с сервером, но в какой-то момент связь была прервана либо самим сервером (процессом rphost), либо промежуточным сетевым оборудованием, либо операционной системой.

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

Шаг 1. Анализ сетевой инфраструктуры и базовые настройки

Первым делом проанализируем физический и канальный уровень сети. Если в здании используется большое количество неуправляемых коммутаторов (так называемый "зоопарк"), высока вероятность кратковременных петель или потерь пакетов под нагрузкой. Рассмотрим, что можно сделать на уровне сетевых карт.

Разберем настройку электропитания сетевого адаптера. В современных ОС Windows по умолчанию включена функция экономии энергии, которая может "усыплять" карту при отсутствии трафика на доли секунды, что фатально для сессии 1С. Выполним следующие действия:

  1. Откроем Диспетчер устройств на сервере и на проблемных клиентских машинах.
  2. Найдем сетевой адаптер, перейдем в Свойства.
  3. На вкладке Управление электропитанием снимем галочку "Разрешить отключение этого устройства для экономии энергии".

Посмотрим на параметры Offloading (разгрузки). Современные сетевые карты пытаются обрабатывать часть трафика своими силами, что часто приводит к ошибкам в длинных TCP-пакетах 1С. Рекомендуется отключить следующие функции в расширенных настройках адаптера:

Это заставит центральный процессор сервера корректно обрабатывать пакеты, исключая ошибки прошивки сетевой карты.

Шаг 2. Разрешение имен через файл hosts

Часто ошибка 10054 возникает из-за нестабильной работы DNS-сервера. Когда клиент 1С обращается к серверу по имени, например SERV_1C, система может на мгновение "потерять" соответствие имени и IP-адреса. Проанализируем решение через локальный файл hosts.

Разберем алгоритм настройки на стороне клиента:

  1. Перейдем в каталог C:\Windows\System32\drivers\etc\.
  2. Откроем файл hosts с помощью блокнота от имени администратора.
  3. Добавим строку вида: 192.168.1.100 SERV_1C (где первый параметр — IP вашего сервера, второй — его сетевое имя).

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

Шаг 3. Оптимизация рабочих процессов сервера 1С (rphost)

Если сетевая инфраструктура в порядке, а ошибка сохраняется, значит, соединение обрывает сам сервер приложений 1С. Выясним причину такого поведения. Чаще всего это происходит из-за аварийного завершения рабочего процесса rphost.exe.

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

Шаг 4. Настройка СУБД MS SQL Server

Иногда источником разрыва связи выступает SQL-сервер. Рассмотрим ситуацию, когда лог-файл (LDF) базы данных разрастается до огромных размеров или заканчивается место на диске.

Разберем шаги по обслуживанию базы:

  1. Проверим модель восстановления базы данных. Если установлена модель Full, но бэкап лога транзакций не делается регулярно, файл лога забьет всё дисковое пространство.
  2. Рекомендуется перевести базу в модель Simple (если вам не нужна возможность восстановления на конкретный момент времени) и выполнить операцию Shrink (сжатие) лога.
  3. Если сервер 1С и SQL установлены на одной машине, обязательно настройте протокол Shared Memory. Это позволит процессам общаться напрямую через оперативную память, полностью исключая сетевой стек и, как следствие, ошибку 10054 в этом узле.

Шаг 5. Тонкая настройка реестра Windows (KeepAlive)

Выясним, как операционная система контролирует "живучесть" соединений. По умолчанию Windows проверяет состояние TCP-соединения раз в два часа. Если за это время сетевой экран (firewall) между клиентом и сервером посчитал сессию неактивной и закрыл порт, 1С выдаст ошибку при попытке обращения.

Для решения этой проблемы мы внесем изменения в реестр на сервере 1С. Рассмотрим параметры в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters:

Эти настройки заставят систему чаще опрашивать активные соединения и не дадут промежуточному оборудованию разорвать канал связи.

Шаг 6. Проверка антивирусного ПО и брандмауэров

Посмотрим на влияние защитного ПО. Антивирусы (особенно со встроенными сетевыми экранами, такие как Касперский) часто блокируют порты 1С (1540, 1541, 1560-1591), считая интенсивный обмен данными атакой.

Проанализируем необходимые исключения:

Резюме

Ошибка 10054 требует комплексного подхода. Мы рекомендуем начинать с файла hosts и настроек электропитания сетевых карт, так как это решает проблему в 70% случаев. Если же ошибка возникает на конкретных тяжелых отчетах, следует сосредоточиться на настройках рабочих процессов rphost и параметрах KeepAlive в реестре Windows. Совместная работа системного администратора и программиста 1С позволит быстро выявить, является ли причиной сбоя сетевое "железо" или некорректно работающий программный код.

← На главную