Почему зависает тонкий клиент 1С после выбора пользователя и как это исправить

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

Ситуация, когда тонкий клиент 1С успешно подключается к серверу, позволяет выбрать пользователя и ввести пароль, но затем «намертво» зависает, является одной из самых сложных для диагностики. Пинг до сервера идет, авторизация проходит, но рабочее пространство не открывается. В консоли кластера при этом часто висит сеанс с единственным вызовом. Рассмотрим подробно, как проанализировать эту проблему и какие шаги предпринять для ее решения.

Анализ технологического журнала (ТЖ)

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

На клиентской машине создадим файл logcfg.xml в каталоге C:\Program Files\1cv8\conf (или %AppData%\1C\1cv8\conf). Нам важно отследить события сетевого обмена и клиентские ошибки. Используем следующий пример настройки:


<config xmlns="http://v8.1c.ru/7.4/config/logcfg">
  <log location="C:\1C_Logs" history="2">
    <event>
      <eq property="Name" value="EXCP"/>
    </event>
    <event>
      <eq property="Name" value="CONN"/>
    </event>
    <event>
      <eq property="Name" value="PROC"/>
    </event>
    <property name="All"/>
  </log>
</config>

После создания файла запустим тонкий клиент и дождемся зависания. В логах CONN (соединения) мы сможем увидеть, пытается ли клиент установить связь по портам динамического диапазона и не обрывается ли эта связь без объяснения причин.

Проблема MTU и фрагментация сетевых пакетов

Выясним причину, связанную с сетевой инфраструктурой. При работе через интернет, особенно через VPN или проброс портов на роутере, часто возникает проблема несовпадения размера MTU (Maximum Transmission Unit). Авторизация проходит успешно, так как пакеты с логином и паролем маленькие. Но как только сервер начинает передавать тяжелый «стартовый пакет» данных (описание интерфейса, настройки пользователя), размер пакета превышает допустимый лимит узла связи.

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

ping [адрес_сервера] -f -l 1472

Если пинг не проходит, значит, размер пакета слишком велик. Рассмотрим решение: уменьшим MTU на сетевом адаптере клиента. Для этого запустим командную строку от имени администратора и выполним команду:


netsh interface ipv4 show subinterfaces
netsh interface ipv4 set subinterface "Имя_вашего_соединения" mtu=1400 store=persistent

Установка значения 1400 (или даже 1300 в сложных случаях) часто мгновенно решает проблему «зависания после пароля».

Конфликт протоколов IPv4 и IPv6

Проанализируем работу протоколов. Современные ОС Windows по умолчанию отдают приоритет IPv6. Тонкий клиент 1С может пытаться обратиться к серверу по IPv6, получать отказ (или попадать в «черную дыру» маршрутизации) и только через длительный таймаут переходить на IPv4. Внешне это выглядит как полное зависание.

Разберем шаги по отключению IPv6:

  1. Зайдем в «Центр управления сетями и общим доступом».
  2. Выберем текущее подключение и нажмем «Свойства».
  3. Снимем галочку с пункта «IP версии 6 (TCP/IPv6)».
  4. Перезагрузим компьютер и проверим запуск 1С.

Настройка поиска программных лицензий

Посмотрим на процесс получения лицензии. Сразу после авторизации тонкий клиент опрашивает менеджеры лицензий. Если в настройках не указано иное, клиент начинает слать широковещательные (broadcast) запросы в поисках аппаратных ключей HASP. Если сеть сложная или сегментированная, ожидание ответа на эти запросы блокирует интерфейс приложения.

Для ускорения запуска отредактируем файл nnhasp.ini, который обычно находится в C:\Program Files\1cv8\conf. Нам нужно явно запретить широковещательный поиск:


[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_USE_BROADCAST = Disabled
NH_SERVER_ADDR = 127.0.0.1 ; Укажите IP сервера лицензий, если он есть

Отключение аппаратного ускорения графики

Интерфейс «Такси» активно использует графический ускоритель (GPU) для отрисовки форм. На некоторых видеокартах или при использовании устаревших драйверов (особенно на платформе 8.3.12) процесс отрисовки начальной страницы вызывает критический сбой графической подсистемы.

Попробуем запустить тонкий клиент с ключом принудительного отключения аппаратного ускорения. В свойствах ярлыка 1С в поле «Объект» добавим параметр:

"C:\Program Files\1cv8\common\1cestart.exe" /GPUOff

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

Проверка подсистемы печати

Выясним влияние периферийных устройств. При запуске 1С обращается к принтеру по умолчанию, чтобы рассчитать параметры вывода форм. Если принтер сетевой и в данный момент недоступен, или если служба печати Spooler зависла, тонкий клиент будет находиться в состоянии ожидания ответа от Windows API.

Рекомендуем временно установить в качестве принтера по умолчанию «Microsoft Print to PDF» или «OneNote». Если 1С начнет запускаться быстро, проблему следует искать в драйвере конкретного принтера или сетевой доступности сервера печати.

Особенности платформы 8.3.12 и антивирусная защита

Платформа версии 8.3.12 имеет свои особенности взаимодействия с кэшем и сетевыми портами. Если все вышеперечисленные методы не помогают, стоит обратить внимание на «зависшие» сеансы в консоли кластера. Один вызов (Call 1) часто свидетельствует о том, что клиент установил TCP-соединение, но не смог выполнить HTTP-запрос внутри этого соединения из-за блокировки антивирусом.

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

  1. Не просто отключите сканирование файлов, а временно деактивируйте сетевой экран (Firewall) и модуль проверки защищенных соединений (SSL/HTTP).
  2. Добавьте исполняемый файл 1cv8c.exe в список исключений (доверенных программ).
  3. Убедитесь, что порты 1540, 1541 и диапазон 1560-1591 открыты для обмена данными в обе стороны.

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

← На главную