Почему 1С:Предприятие зависает на заставке при попытке входа через веб-клиент на IIS?

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

Развертывание веб-доступа для 1С:Предприятие 8.3 — это стандартная задача для системного администратора, но она часто сопровождается труднообъяснимыми зависаниями. Типичная ситуация: база опубликована на веб-сервере (IIS или Apache), при переходе по ссылке открывается окно запуска, появляется фирменная «крутилка» заставки, но до выбора пользователя или ввода пароля дело не доходит. При этом локальное подключение через тонкий клиент работает исправно. В данной статье мы подробно разберем, почему это происходит, и как пошагово диагностировать и устранить проблему.

Анализ сетевых блокировок и выдачи лицензий

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

Проанализируем шаги по настройке сетевого экрана:

  1. Проверка портов для программных лицензий: Если используются программные лицензии, необходимо убедиться, что открыт трафик для службы лицензирования.
  2. Аппаратные ключи (HASP): Если ваша система использует USB-ключи защиты, обязательно откройте порт 1947 (TCP и UDP). Это порт службы Sentinel LDK License Manager. Без доступа к нему через веб-интерфейс лицензия не будет получена, и заставка «зависнет».
  3. Исключения для процессов: Добавьте в список исключений фаервола процессы веб-сервера (например, w3wp.exe для IIS) и процессы сервера 1С (ragent.exe, rmngr.exe, rphost.exe).

Взаимодействие разрядности платформы и пула приложений IIS

Часто проблемы начинаются после обновления платформы 1С. Разберем ситуацию: вы установили новую версию платформы, обновили публикацию, но система перестала пускать пользователей. Одной из скрытых причин является конфликт разрядности (32-бит против 64-бит).

Посмотрим на настройки IIS. Модуль wsisapi.dll должен соответствовать разрядности пула приложений, в котором работает база. Если вы установили 64-битную платформу, выполним следующие действия:

  1. Откроем Диспетчер служб IIS.
  2. Перейдем в раздел «Пулы приложений» (Application Pools).
  3. Найдем пул, который обслуживает вашу публикацию (обычно это DefaultAppPool или специально созданный пул).
  4. Нажмем «Дополнительные параметры».
  5. Убедимся, что параметр «Разрешить 32-разрядные приложения» (Enable 32-Bit Applications) установлен в значение False для 64-битной платформы. Если у вас 32-битная платформа — установите True.

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

Права доступа к системным папкам и временным файлам

Проанализируем ситуацию с правами доступа. Когда пользователь заходит через браузер, все действия на сервере выполняются от имени пользователя, назначенного пулу приложений IIS (обычно это IIS AppPool\имя_пула или IUSR). Если у этого пользователя недостаточно прав для чтения файлов лицензий или записи временных файлов, сессия не будет инициализирована.

Проверим и настроим права на следующие каталоги:

Настройка файла конфигурации публикации (default.vrd)

Иногда причина кроется в самом файле описания публикации default.vrd. Если в нем неверно указаны параметры соединения или настройки пула соединений, пользователи будут сталкиваться с задержками. Рассмотрим пример структуры файла default.vrd, на который стоит обратить внимание:


<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        base="/MyBase"
        ib="Srvr=&quot;MyServer&quot;;Ref=&quot;MyBase&quot;;">
    <ws>
        <point name="Mobile" alias="mobile.1cws" enable="true"/>
    </ws>
    <standardOdata enable="false"/>
    <pool size="10" timeout="5"/>
</point>

Обратим внимание на параметр pool size. Если количество активных запросов от браузеров превышает установленный размер пула, новые запросы будут стоять в очереди, что визуально выглядит как зависание интерфейса. Попробуем увеличить значение size, если в базе одновременно работает много пользователей через веб.

Влияние глубокой инспекции трафика (DPI) и антивирусов

В логах веб-сервера часто можно заметить обращения сторонних инспекторов безопасности (например, CyberOKInspect или модули антивирусов). Выясним причину: 1С обменивается с сервером множеством мелких POST-запросов. Системы защиты могут интерпретировать такую активность как попытку взлома или DDOS-атаку и временно блокировать соединение.

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

  1. Добавить адрес публикации 1С (URL) в белый список вашего антивируса и сетевого инспектора.
  2. Отключить проверку HTTPS-трафика для узла, на котором развернута 1С, так как подмена сертификатов антивирусом для анализа трафика часто «ломает» работу веб-клиента.

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

Если вышеперечисленные методы не помогли, разберем самый надежный способ поиска ошибки — настройку Технологического журнала. Создадим файл logcfg.xml в папке C:\Program Files\1cv8\conf (или в папке conf конкретной версии платформы).

Рассмотрим пример настройки для отслеживания ошибок инициализации сессии:


<config xmlns="http://v8.1c.ru/7.1/config">
  <log location="C:\LOGS\1C" history="24">
    <event>
      <eq property="Name" value="EXCP"/>
    </event>
    <event>
      <eq property="Name" value="SDBL"/>
    </event>
    <property name="all"/>
  </log>
</config>

После создания файла и перезапуска службы IIS, попробуем снова зайти через браузер. В папке C:\LOGS\1C появятся файлы логов. Проанализируем их на наличие событий EXCP (Exception). Если вы увидите ошибки вида «Access denied» или «License not found», это укажет на конкретную причину зависания заставки.

Особенности работы браузеров и кэширования

Завершим наш разбор нюансами на стороне клиента. Веб-клиент 1С активно использует кэш браузера для хранения программного кода интерфейса. После обновления платформы старый кэш может конфликтовать с новыми библиотеками wsisapi.dll.

Выполним очистку:

Таким образом, мы рассмотрели комплексный подход к решению проблемы зависания 1С в веб-интерфейсе. В большинстве случаев проблема решается настройкой правил фаервола и проверкой прав доступа пользователя IIS к файлам лицензий.

← На главную