В практике сопровождения систем 1С нередко встречается ситуация, когда из нескольких десятков рабочих станций периодические зависания программы наблюдаются лишь на одной или двух машинах. При этом поведение выглядит хаотичным: 1С может зависнуть при запуске программы, открытии формы документа или справочника, а также во время полного бездействия пользователя. Особенно часто подобное проявляется в конфигурациях на обычных формах (например, 1С:Зарплата и управление персоналом 2.5), работающих через толстый клиент в клиент-серверном варианте. Разберем по шагам, почему возникает такая нестабильность и как поэтапно локализовать и устранить неполадку.
Проанализируем базовый уровень взаимодействия между клиентским компьютером и сервером 1С. В режиме толстого клиента платформа передает между рабочей станцией и кластером большие объемы сериализованных данных. Стандартный тест командой ping отправляет пакеты размером всего 32 байта, что не позволяет выявить проблемы фрагментации и сбоев сетевого оборудования при передаче реального трафика 1С.
Для корректного анализа выполним непрерывную проверку пакетами большого размера:
ping ИМЯ_ИЛИ_IP_СЕРВЕРА -l 65500 -t
Выясним причину, которая часто приводит к мертвым зависаниям толстого клиента именно на этапе открытия форм или в моменты простоя. Платформа 1С при инициализации диалоговых окон, формировании табличных документов и даже в фоне выполняет синхронные вызовы к драйверу принтера, назначенного в Windows по умолчанию. Это необходимо для расчета геометрии форм, межстрочных интервалов и шрифтов.
Если принтер по умолчанию является сетевым, выключен, находится в другой подсети или его драйвер завис, процесс 1cv8.exe блокируется в ожидании системного ответа на время тайм-аута (от 30 до 120 секунд). Пользователь воспринимает это как внезапное зависание.
Для устранения проблемы назначим на проблемных рабочих станциях по умолчанию локальный виртуальный принтер, например Microsoft Print to PDF, и понаблюдаем за поведением программы.
Рассмотрим влияние драйверов защиты. Если на клиентской машине не настроен файл конфигурации nethasp.ini, толстый клиент при проверке доступности лицензий выполняет широковещательную рассылку (broadcast) UDP-пакетов по порту 475. При временных задержках в локальной сети или фильтрации широковещательного трафика маршрутизаторами программа регулярно уходит в глубокую паузу, ожидая ответа от менеджера лицензий.
Разберем, как принудительно зафиксировать параметры поиска ключей защиты:
nethasp.ini в каталоге установки платформы (папка bin\conf).
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.100
NH_USE_BROADCAST = Disabled
Повреждение локального кэша метаданных и кэша пользовательских настроек форм — частая причина спонтанных сбоев на конкретных ПК. Параметр запуска /ClearCache очищает исключительно кэш метаданных конфигурации, но оставляет нетронутыми файлы настроек пользовательского интерфейса, которые также могут быть повреждены.
Выполним полную ручную очистку служебных каталогов:
1cv8.exe.
%LOCALAPPDATA%\1C\1Cv8\
%APPDATA%\1C\1Cv8\
Проанализируем аппаратные настройки сетевой карты Windows. Зависания 1С в режиме бездействия или при передаче тяжелых выборок данных нередко связаны с функциями энергосбережения и разгрузки процессора сетевым контроллером.
Рекомендуется выполнить следующие действия в диспетчере устройств Windows:
Если базовые шаги не помогли, перейдем к снятию точной телеметрии зависшего процесса:
1cv8.exe, нажмем по нему правой кнопкой мыши и выберем «Создать файл дампа памяти». Анализ стека вызовов потока через отладчик покажет, ожидает ли поток завершения сетевого вызова, ответа от подсистемы принтеров или занят внутренней блокировкой.conf клиентской части платформы (например, C:\Program Files (x86)\1cv8\conf\) файл logcfg.xml с настройкой сбора событий CALL и EXC с фильтром по длительности (duration). Это позволит зафиксировать, разрывается ли соединение с сервером 1С или клиент блокируется системными компонентами рабочей станции.Посмотрим на общую архитектуру системы. Конфигурация 1С:Зарплата и управление персоналом 2.5 работает исключительно в режиме толстого клиента на обычных формах. Эксплуатация толстого клиента через локальную сеть крайне требовательна к стабильности сетевого канала и системному окружению рабочих станций. Наиболее надежным и стабильным решением для таких конфигураций является перенос рабочих мест пользователей в терминальный режим (RDP / RemoteApp), где клиент 1С и кластер серверов работают в рамках единой высокоскоростной серверной инфраструктуры.