Почему зависает веб-клиент 1С на заставке при использовании Apache 2.4 и как это исправить?

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

Ситуация, когда веб-клиент 1С:Предприятие зависает на этапе заставки («белое окно» или бесконечная анимация загрузки), является довольно распространенной, особенно после обновления платформы до версии 8.3.17 и выше. Характерным признаком проблемы часто бывает успешный первый запуск после перезагрузки служб и полная невозможность установить вторую и последующие сессии. Проанализируем причины этого поведения и разберем по шагам методы решения, начиная от настройки программных и аппаратных лицензий и заканчивая тонкой оптимизацией веб-сервера Apache 2.4.

Выясняем причину: Лицензирование и конфликт ключей HASP

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

Важно понимать различие между ключами: зеленый ключ (маркировка EN8SA) — это серверная лицензия, а красный ключ (маркировка NetXX ORGL8) — клиентская многопользовательская лицензия. Платформа 1С позволяет им работать на одной машине, но если у вас установлены два клиентских ключа одной серии (например, два ключа по 5 лицензий), они будут конфликтовать. В этом случае система видит только один из них, либо вообще «замирает» при попытке опроса.

Для решения этой проблемы разберем алгоритм настройки nnhasp.ini:

  1. Разнесение ключей: Рекомендуется физически распределить ключи по разным компьютерам в локальной сети.
  2. Адресная настройка: Чтобы веб-сервер не тратил время на широковещательный поиск (Broadcast), который часто блокируется сетевыми экранами или вызывает задержки, необходимо жестко прописать IP-адрес сервера лицензий.
  3. Редактирование файла настроек: Найдите файл nnhasp.ini (обычно он находится в папке bin установленной платформы или в C:\Program Files\Common Files\Aladdin Shared\HASP\). Настройте его следующим образом:

[NH_COMMON]
NH_TCPIP = ENABLED

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.10 ; Укажите здесь IP вашего сервера с ключом
NH_PORT_NUMBER = 475
NH_TCPIP_METHOD = TCP
NH_USE_IPV4 = ENABLED

Проанализируем ситуацию: явное указание протокола TCP и конкретного IP-адреса исключает задержки, связанные с UDP-опросом всей подсети, что критично для стабильной работы веб-клиента через Apache.

Оптимизация настроек Apache 2.4 для Windows

Если с лицензиями проблем нет, но вторая сессия всё равно зависает, нам необходимо посмотреть на настройки самого веб-сервера Apache. В ОС Windows Apache использует многопоточную модель, которая иногда некорректно взаимодействует с расширением 1С (wsap24.dll).

Рассмотрим правки, которые необходимо внести в файл конфигурации httpd.conf:

  1. Отключение AcceptFilter: Это одна из самых частых причин «замирания» соединений в Windows. Добавьте в конец файла следующие строки:

AcceptFilter http none
AcceptFilter https none
  1. Отключение передачи файлов через ядро: Параметры EnableSendfile и EnableMMAP могут вызывать блокировки при чтении статических ресурсов платформы. Установите их в состояние Off:

EnableMMAP Off
EnableSendfile Off
  1. Настройка лимитов потоков: Если одновременно работает много пользователей, стандартного количества потоков может не хватить. Найдите блок mpm_winnt_module и увеличьте значение ThreadsPerChild:

<IfModule mpm_winnt_module>
    ThreadsPerChild 250
    MaxConnectionsPerChild 0
</IfModule>

Эти настройки позволяют Apache более стабильно обрабатывать входящие HTTP-запросы от веб-клиента 1С, предотвращая зависания на уровне сетевого сокета.

Влияние Service Workers и кэширования в 1С 8.3.17+

Начиная с версии 8.3.17, 1С внедрила технологию Service Workers для веб-клиента. Это позволяет кэшировать программные модули в браузере для ускорения работы. Однако, если на сервере обновилась платформа или изменились настройки публикации, старый кэш Service Worker в браузере пользователя может привести к тому, что приложение зависнет при попытке инициализации.

Разберем способы очистки:

Диагностика с помощью Технологического журнала и Fiddler

Если вышеперечисленные методы не помогли, нам стоит прибегнуть к инструментам глубокого анализа. Проанализируем ситуацию с помощью Fiddler и Технологического журнала (ТЖ).

Шаги диагностики через Fiddler:

  1. Запустите Fiddler на клиентской машине.
  2. Попробуйте войти в базу через веб-клиент до момента зависания.
  3. Посмотрите, на какой запрос сервер перестал отвечать. Если запрос уходит (статус Sent), но ответа 200 OK нет — проблема на стороне Apache или серверной части 1С.

Настройка Технологического журнала на сервере: Создайте файл logcfg.xml в папке conf серверной части 1С, чтобы отследить события получения лицензий и ошибки сеансов:


<config xmlns="http://v8.1c.ru/7.4/get/logcfg">
  <log location="C:\LOGS\1C" history="24">
    <event>
      <eq property="Name" value="HASP"/>
    </event>
    <event>
      <eq property="Name" value="EXCP"/>
    </event>
    <property name="AllProperties"/>
  </log>
</config>

В логах события HASP покажут, откуда именно платформа пытается забрать лицензию и на каком этапе происходит отказ.

Взаимодействие с защитным ПО и правами доступа

Не стоит забывать и о системном окружении. Даже если антивирус или брандмауэр выглядят отключенными, их драйверы фильтрации трафика (WFP) могут блокировать специфические запросы Apache.

Рекомендации по настройке безопасности:

Подводя итог, можно сказать, что решение проблемы зависания чаще всего кроется в настройке nnhasp.ini и отключении AcceptFilter в Apache. Совместное применение этих мер гарантирует стабильный запуск веб-клиента 1С даже в условиях высокой нагрузки и использования сложных схем лицензирования.

← На главную