Ошибка с кодом 10054 является одной из самых распространенных и в то же время сложных в диагностике проблем при работе с 1С:Предприятие в клиент-серверном варианте. Она сигнализирует о том, что соединение между клиентом и сервером (или между сервером приложений и сервером баз данных) было разорвано на уровне протокола TCP/IP. В этой статье мы подробно проанализируем причины возникновения этой ситуации и разберем по шагам проверенные способы ее решения, опираясь на опыт ведущих специалистов и рекомендации вендора.
Прежде всего, давайте выясним причину. Ошибка WSAECONNRESET (10054) означает, что партнер по соединению (удаленный узел) неожиданно закрыл сокет. В контексте 1С это может происходить на трех уровнях:
rphost.Рассмотрим самый простой, но эффективный метод. Часто причиной сбоя становятся некорректные временные файлы. Разберем, как правильно выполнить очистку. На клиентской машине необходимо удалить содержимое папок в каталоге пользователя. Для автоматизации этого процесса мы можем использовать batch-скрипт:
rem Удаление кэша 1С 8.3
rmdir /s /q "%LocalAppData%\1C\1cv8"
rmdir /s /q "%AppData%\1C\1cv8"
echo Кэш успешно очищен.
Важно помнить, что после удаления кэша первый запуск программы может занять больше времени, так как 1С будет заново формировать локальные индексы и метаданные. Если проблема сохраняется, проанализируем серверный кэш. На сервере 1С необходимо остановить службу Agent 1C:Enterprise и очистить папку snccntxt, находящуюся внутри каталога данных сервера (обычно это C:\Program Files\1cv8\srvinfo).
Проанализируем сетевые настройки. Одной из скрытых причин ошибки 10054 является попытка системы использовать протокол IPv6, который может быть некорректно настроен в локальной сети. Мы рекомендуем принудительно перевести сервер на использование IPv4.
Также стоит обратить внимание на параметр MTU (Maximum Transmission Unit). Если пакеты данных от 1С (которые могут быть весьма объемными) превышают размер MTU и фрагментируются, некоторые сетевые экраны могут их отбрасывать. Проверим текущий размер MTU командой:
netsh interface ipv4 show subinterfaces
Если вы используете VPN, попробуйте снизить значение MTU до 1300 или 1400 байт. Это часто решает проблему нестабильных соединений в распределенных сетях.
Разберем ситуацию, когда ошибка 10054 вызвана падением рабочего процесса rphost. Это происходит, если процесс потребляет слишком много памяти или сталкивается с критической ошибкой в коде конфигурации. Посмотрим, какие настройки в консоли администрирования кластера помогут стабилизировать работу:
Выясним причину на стороне базы данных. Если SQL Server считает, что запрос от 1С выполняется слишком долго, он может оборвать соединение. Проанализируем настройки SQL Server Management Studio (SSMS). Рекомендуется установить параметр Max Degree of Parallelism (MAXDOP). Для баз данных 1С оптимальным значением часто является 1 (для небольших серверов) или от 2 до 4 для многопроцессорных систем, чтобы избежать взаимных блокировок.
Также проверим настройки электропитания на сервере. В режиме «Сбалансированный» сетевая карта или процессор могут уходить в режим энергосбережения, что вызывает микро-задержки, достаточные для разрыва TCP-сессии. Установите режим «Высокая производительность» (High Performance).
Если ошибка возникает в конкретный момент (например, при формировании тяжелого отчета), нам необходимо проанализировать, что именно происходит в системе. Для этого настроим Технологический журнал (ТЖ). Создадим файл logcfg.xml в папке conf сервера 1С:
<config xmlns="http://v8.1c.ru/7.4/config/log">
<log location="C:\LOGS\1C" history="24">
<event>
<eq property="Name" value="EXCP"/>
</event>
<event>
<eq property="Name" value="CONN"/>
</event>
</log>
</config>
События EXCP зафиксируют исключительные ситуации, а CONN покажет моменты разрыва соединений. Проанализировав логи, мы сможем понять, какой именно объект метаданных или какой кусок кода вызывает сбой rphost.
Рассмотрим еще несколько важных моментов. Проверьте антивирусное ПО на сервере. Часто сканер портов или сетевой экран антивируса ошибочно принимает интенсивный трафик 1С за атаку и блокирует соединение. Добавьте процессы ragent.exe, rmngr.exe и rphost.exe в исключения.
В завершение проанализируем состояние физического оборудования. Замена сетевого кабеля или порта в коммутаторе иногда решает проблему, которую пытались устранить программными методами неделями. Помните, что стабильность 1С напрямую зависит от качества сетевой инфраструктуры.
Таким образом, мы детально разобрали комплекс мер по борьбе с ошибкой 10054. Следуя этим шагам — от очистки кэша до глубокой настройки сетевого стека и параметров сервера — вы сможете минимизировать простои системы и обеспечить комфортную работу пользователей.