Почему периодически зависает толстый клиент 1С на отдельных компьютерах и как найти причину?

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

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

Шаг 1. Расширенная проверка сетевого соединения и потерь пакетов

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

Для корректного анализа выполним непрерывную проверку пакетами большого размера:

  1. Откроем командную строку Windows на проблемном компьютере.
  2. Запустим диагностику командой с указанием размера буфера и непрерывной отправки: ping ИМЯ_ИЛИ_IP_СЕРВЕРА -l 65500 -t
  3. Оставим команду выполняться продолжительное время, пока пользователь работает в системе.
  4. Обратим внимание на наличие потерянных пакетов (Request timed out) и резкие скачки времени отклика (RTT). Если при передаче пакетов предельного размера фиксируются потери или разрывы, это указывает на аппаратные сбои сетевого адаптера, повреждение патч-корда, нестабильность порта коммутатора или некорректную настройку MTU в локальной сети.

Шаг 2. Проверка принтера по умолчанию и подсистемы печати

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

Если принтер по умолчанию является сетевым, выключен, находится в другой подсети или его драйвер завис, процесс 1cv8.exe блокируется в ожидании системного ответа на время тайм-аута (от 30 до 120 секунд). Пользователь воспринимает это как внезапное зависание.

Для устранения проблемы назначим на проблемных рабочих станциях по умолчанию локальный виртуальный принтер, например Microsoft Print to PDF, и понаблюдаем за поведением программы.

Шаг 3. Исключение широковещательного поиска лицензий HASP

Рассмотрим влияние драйверов защиты. Если на клиентской машине не настроен файл конфигурации nethasp.ini, толстый клиент при проверке доступности лицензий выполняет широковещательную рассылку (broadcast) UDP-пакетов по порту 475. При временных задержках в локальной сети или фильтрации широковещательного трафика маршрутизаторами программа регулярно уходит в глубокую паузу, ожидая ответа от менеджера лицензий.

Разберем, как принудительно зафиксировать параметры поиска ключей защиты:

  1. Найдем файл nethasp.ini в каталоге установки платформы (папка bin\conf).
  2. Отключим широковещательный опрос и укажем точный IP-адрес сервера с установленным менеджером лицензий:
    
    [NH_COMMON]
    NH_TCPIP = Enabled
    
    [NH_TCPIP]
    NH_SERVER_ADDR = 192.168.1.100
    NH_USE_BROADCAST = Disabled
    
  3. Сохраним изменения и перезапустим сеанс 1С.

Шаг 4. Очистка локального кэша и пользовательских настроек

Повреждение локального кэша метаданных и кэша пользовательских настроек форм — частая причина спонтанных сбоев на конкретных ПК. Параметр запуска /ClearCache очищает исключительно кэш метаданных конфигурации, но оставляет нетронутыми файлы настроек пользовательского интерфейса, которые также могут быть повреждены.

Выполним полную ручную очистку служебных каталогов:

  1. Завершим все запущенные процессы 1cv8.exe.
  2. Удалим содержимое каталогов с временными GUID-папками:
    
    %LOCALAPPDATA%\1C\1Cv8\
    %APPDATA%\1C\1Cv8\
    
  3. Удалим информационную базу из общего списка баз и добавим ее заново.

Шаг 5. Тонкая настройка сетевого адаптера и стека протоколов

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

Рекомендуется выполнить следующие действия в диспетчере устройств Windows:

  1. Открыть свойства сетевого адаптера и перейти на вкладку «Управление электропитанием». Снять флажок «Разрешить отключение этого устройства для экономии энергии».
  2. На вкладке «Дополнительно» отключить функции зеленой сети: Energy Efficient Ethernet (EEE) и Green Ethernet.
  3. Отключить аппаратную разгрузку TCP: параметры Large Send Offload (LSO) и IPv4 Checksum Offload. Аппаратные ошибки сетевых чипов при обработке этих функций приводят к зависанию пакетов в сокете 1С.
  4. В свойствах сетевого подключения отключить компонент «IP версии 6 (TCP/IPv6)», если в сети используется только IPv4. Это исключит задержки при попытке платформы разрешить сетевое имя сервера через IPv6 перед переходом на IPv4.

Шаг 6. Точная диагностика: дампы памяти и технологический журнал

Если базовые шаги не помогли, перейдем к снятию точной телеметрии зависшего процесса:

  1. Снятие дампа памяти. В момент, когда 1С находится в зависшем состоянии, откроем Диспетчер задач, найдем процесс 1cv8.exe, нажмем по нему правой кнопкой мыши и выберем «Создать файл дампа памяти». Анализ стека вызовов потока через отладчик покажет, ожидает ли поток завершения сетевого вызова, ответа от подсистемы принтеров или занят внутренней блокировкой.
  2. Подключение Технологического журнала на клиенте. Создадим в каталоге conf клиентской части платформы (например, C:\Program Files (x86)\1cv8\conf\) файл logcfg.xml с настройкой сбора событий CALL и EXC с фильтром по длительности (duration). Это позволит зафиксировать, разрывается ли соединение с сервером 1С или клиент блокируется системными компонентами рабочей станции.

Альтернативное архитектурное решение

Посмотрим на общую архитектуру системы. Конфигурация 1С:Зарплата и управление персоналом 2.5 работает исключительно в режиме толстого клиента на обычных формах. Эксплуатация толстого клиента через локальную сеть крайне требовательна к стабильности сетевого канала и системному окружению рабочих станций. Наиболее надежным и стабильным решением для таких конфигураций является перенос рабочих мест пользователей в терминальный режим (RDP / RemoteApp), где клиент 1С и кластер серверов работают в рамках единой высокоскоростной серверной инфраструктуры.

← На главную