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

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

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

Разберем детально, почему возникает такое зависание, как правильно локализовать сбой и какие шаги необходимо предпринять для восстановления стабильной работы веб-публикации.

1. Проверка разрядности веб-сервера и модуля расширения 1С

Проанализируем конфигурацию веб-сервера Apache. Одной из самых распространенных причин зависания является несовпадение разрядности установленного веб-сервера и подключаемого модуля 1С, либо указание неверного пути к библиотеке wsap24.dll (для Apache 2.4) или wsisapi.dll (для IIS).

Если на сервере установлена как 32-разрядная (x86), так и 64-разрядная (x64) платформа 1С, стандартный мастер публикации из графического конфигуратора может автоматически прописать в конфигурационный файл путь к 32-битной библиотеке из каталога Program Files (x86), тогда как сам веб-сервер запущен в 64-битном режиме.

Проверим и приведем файл httpd.conf к корректному виду, убедившись, что разрядности совпадают:


LoadModule _1cws_module "C:/Program Files/1cv8/8.3.8.2322/bin/wsap24.dll"

# 1c publication
Alias "/Main" "C:/Apache/htdocs/main/"
<Directory "C:/Apache/htdocs/main/">
    AllowOverride All
    Options None
    Require all granted
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/Apache/htdocs/main/default.vrd"
</Directory>

Чтобы исключить влияние графического конфигуратора, выполним публикацию через консольную утилиту webinst.exe нужной разрядности:


"C:\Program Files\1cv8\8.3.8.2322\bin\webinst.exe" -apache24 -wsdir Main -dir "C:\Apache\htdocs\main" -connstr "Srvr=localhost;Ref=Main;" -confpath "C:\Apache24\conf\httpd.conf"

2. Настройка поиска клиентских лицензий и устранение сетевых таймаутов

Выясним причину долгого зависания на этапе инициализации. Когда модуль веб-расширения обрабатывает входящее подключение, он пытается получить клиентскую лицензию. Если на сервере не настроена прямая выдача лицензий или веб-сервер не может найти локальный ключ, система начинает сканировать локальную сеть широковещательными пакетами (Broadcast), ожидая ответа по таймауту. В этот момент пользователь наблюдает статичную заставку запуска.

Для устранения задержек поиска лицензий выполним следующие действия:

  1. Откроем консоль администрирования кластера серверов 1С:Предприятия.
  2. В свойствах информационной базы найдем параметр Разрешить выдачу лицензий сервером 1С:Предприятия и установим его в значение Да.
  3. Если используются сетевые аппаратные ключи защиты, отредактируем файл nethasp.ini, расположенный в каталоге conf платформы 1С, явно указав IP-адрес сервера лицензирования и отключив широковещательный поиск:

[NH_COMMON]
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.10
NH_USE_BROADCAST = Disabled

3. Корректировка параметров разрешения имен в файле default.vrd

Рассмотрим структуру файла дескриптора публикации default.vrd. Зависание на заставке часто происходит из-за сетевых задержек при трансляции доменного имени сервера кластера в IP-адрес через протокол IPv6 или некорректно настроенный DNS.

Откроем файл default.vrd в каталоге публикации и проанализируем строку соединения в атрибуте ib:


<?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="/Main"
        ib="Srvr=127.0.0.1;Ref=Main;" />

Заменим сетевое имя сервера на локальный IP-адрес (например, 127.0.0.1, если веб-сервер и сервер 1С находятся на одной машине), либо добавим жесткую связку имени и IP-адреса в системный файл hosts операционной системы.

4. Проверка прав системных учетных записей на временные каталоги

Проанализируем права учетной записи, от имени которой стартует служба веб-сервера (в Apache это обычно Local System, а в IIS — ApplicationPoolIdentity или Network Service). В процессе инициализации сеанса веб-расширение 1С обращается к системным временным каталогам профиля.

Разберем по шагам предоставление необходимых прав:

  1. Перейдем в каталог системных профилей C:\Windows\System32\config\systemprofile\AppData\Local\Temp.
  2. Откроем свойства папки, вкладку Безопасность и предоставим учетной записи службы полные права на чтение, запись и изменение.
  3. Убедимся, что учетная запись веб-сервера имеет права на чтение и выполнение в каталоге установки платформы C:\Program Files\1cv8\.
  4. Очистим содержимое пользовательских и системных каталогов Temp, а также кэш браузера перед повторным запуском.

5. Проверка межпроцессного взаимодействия и портов кластера

Веб-сервер при обработке запроса устанавливает TCP-соединения с процессами кластера 1С — ragent.exe, rmngr.exe и рабочими процессами rphost.exe (стандартный диапазон портов 1540, 1541, 1560–1591). Локальные экраны безопасности и антивирусное ПО могут блокировать внутренний трафик между службой веб-сервера (httpd.exe или w3wp.exe) и сервером 1С без вывода явных критических ошибок в журналы.

Добавим исполняемые файлы веб-сервера и платформы 1С в список исключений брандмауэра и антивируса, чтобы обеспечить беспрепятственный обмен данными по локальным сетевым сокетам.

6. Пошаговая диагностика через тонкий клиент

Для быстрой проверки правильности настройки веб-канала подключимся к опубликованной базе с помощью тонкого клиента 1С:

  1. В окне запуска 1С:Предприятия нажмем кнопку Добавить.
  2. Выберем вариант Добавление в список существующей информационной базы.
  3. Укажем тип расположения: На веб-сервере и введем строку вида http://localhost/Main.
  4. Запустим сеанс. Если через тонкий клиент окно авторизации открывается корректно, проблема локализована в настройках браузера или параметрах поддержки веб-клиента. Если зависание сохраняется — сбой вызван сетевыми таймаутами или блокировками на уровне серверных процессов.
← На главную