Зависание клиента 1С на этапе запуска — ситуация, с которой часто сталкиваются системные администраторы при работе с клиент-серверными вариантами баз. Особенно остро эта проблема проявляется на операционных системах прошлых поколений, таких как Windows 7 x86. В данной статье мы подробно разберем, почему клиент может «замирать», не доходя до окна ввода логина и пароля, проанализируем данные технологического журнала и выработаем пошаговый план решения проблемы.
Рассмотрим исходную ситуацию: платформа 8.3.16.1876, база БГУ 1.0. На одном конкретном рабочем месте при запуске 1С программа зависает. Очистка кэша (как пользовательского в %AppData%, так и локального в %LocalAppData%) не дает результата. Помогает только многократный перезапуск приложения, что указывает на проблему инициализации сетевого соединения или создания удаленного экземпляра объекта.
Проанализируем выдержку из серверного технологического журнала:
13:59.142000-0,CONN,0,process=rmngr,p:processName=ServerJobExecutorContext,OSThread=2008,ClientID=1531000,Protected=1,Txt='Accepted, client=(2)192.168.0.17:50910, server=(2)192.168.0.5:1541, marker=1'
13:59.267004-3,CALL,1,process=rmngr,p:processName=ServerJobExecutorContext,OSThread=4376,t:clientID=1531000,callWait=0,first=true,Interface=7f58f27d-5ad8-43a1-aa1e-c982f41bed5c,IName=IRemoteCreatorService,Method=0,CallID=14687,MName=createRemoteInstance
Событие IRemoteCreatorService с методом createRemoteInstance сообщает нам о том, что клиент пытается создать удаленный объект на сервере. Если после этого вызова происходит длительная пауза или разрыв соединения, значит, сетевое взаимодействие между клиентом и сервером работает нестабильно. Выясним, как это исправить.
Одной из наиболее частых причин зависаний 1С на Windows 7 является некорректная работа протокола IPv6. Даже если вы сняли галочку в свойствах сетевого адаптера, протокол остается активным в системе на уровне ядра. Разберем, как отключить его полностью через реестр.
Win + R, введите regedit и нажмите Enter.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\.DWORD (32 бита) с именем DisabledComponents.0xFFFFFFFF (в шестнадцатеричной системе) для полного отключения всех компонентов IPv6.Этот метод позволяет исключить задержки, возникающие, когда клиент 1С сначала пытается разрешить имя сервера через IPv6, ждет таймаута и только потом переходит к IPv4.
В Windows 7 функции разгрузки сетевого протокола (Offload) часто конфликтуют с драйверами старых сетевых карт, что приводит к «залипанию» TCP-пакетов 1С. Мы можем принудительно отключить эти функции для стабилизации трафика.
Запустите командную строку (cmd) от имени администратора и выполните следующие команды по очереди:
netsh int tcp set global chimney=disabled
netsh int tcp set global rss=disabled
netsh int tcp set global netdma=disabled
netsh int tcp set global autotuninglevel=disabled
Эти настройки отключают динамическую подстройку окна приема и аппаратное ускорение обработки пакетов, что делает сетевое соединение 1С более предсказуемым.
Если в вашей сети используются аппаратные ключи HASP, клиент 1С при запуске может тратить значительное время на опрос всех доступных менеджеров лицензий. Чтобы избежать зависания, проанализируем настройки файла nnhasp.ini, который обычно находится в папке C:\Program Files\1cv8\conf\ или в папке с версией платформы.
Отредактируйте файл, указав конкретный IP-адрес сервера лицензий:
[NH_COMMON]
NH_TCPIP = ENABLE
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.0.5 ; Замените на IP вашего сервера 1С
NH_TCPIP_METHOD = TCP
NH_USE_BROADCAST = DISABLE ; Отключаем широковещательный поиск
Такая настройка заставляет клиент сразу обращаться к нужному серверу, минуя фазу сканирования всей подсети, что часто убирает «висение» перед окном логина.
Зависание на createRemoteInstance часто связано с тем, что компьютер не может быстро сопоставить имя сервера с его IP-адресом. Посмотрим, как это проверить:
ping SERVERNAME. Если ответ идет долго или с задержкой в первой строке, проблема в DNS.C:\Windows\System32\drivers\etc\hosts.192.168.0.5 SERVERNAME.Это исключит обращения к DNS-серверу на этапе инициализации соединения 1С.
Поскольку мы работаем с 32-битной системой (x86), управление памятью критично. Система предотвращения выполнения данных (DEP) может ошибочно блокировать вызовы удаленных процедур 1С. Разберем, как добавить программу в исключения:
1cv8.exe.%AppData%\1C, но и сам процесс 1С, а также порты 1540, 1541, 1560-1591.Мы проанализировали ситуацию с зависанием клиента 1С на Windows 7 и выяснили, что корень проблемы чаще всего кроется в сетевом взаимодействии. Последовательное выполнение предложенных шагов — отключение IPv6 в реестре, настройка TCP-стека и оптимизация nnhasp.ini — в 90% случаев позволяет устранить зависание без переустановки операционной системы. Помните, что для Windows 7 крайне важно поддерживать актуальность драйверов сетевых адаптеров, так как платформа 8.3.16 и выше активно использует современные сетевые вызовы.