При работе с веб-публикациями 1С на базе Apache системные администраторы часто сталкиваются с ситуацией, когда старые базы работают корректно, а свежеопубликованная база при попытке входа через тонкий клиент или браузер вызывает «вечное» ожидание или зависание платформы. Процесс 1cv8.exe или окно браузера перестает отвечать, не доходя до окна авторизации. Рассмотрим подробно причины такого поведения и разберем по шагам методы устранения этой проблемы.
Одной из самых частых причин, по которой опубликованная база зависает, является отсутствие у веб-сервера прав на чтение и запись файлов базы данных. Важно понимать, под какой учетной записью запущена служба Apache. По умолчанию в ОС Windows веб-сервер часто работает от имени учетной записи SYSTEM (Система).
Проанализируем ситуацию: если у этой учетной записи нет полных прав на каталог с файловой базой 1С (файл 1Cv8.1CD), Apache сможет инициировать соединение, но платформа не сможет открыть файл базы для монопольного или разделяемого доступа, что приведет к бесконечному ожиданию ответа. Выполним следующие действия:
Важный нюанс: если ваш Apache запущен под специфической доменной или локальной учетной записью, права необходимо выдавать именно ей, а не пользователю SYSTEM.
Зависание на этапе загрузки часто связано с тем, что модуль расширения веб-сервера 1С не может получить лицензию. Выясним причину: при обращении через веб-сервер платформа ищет ключ защиты. Если в настройках базы или в конфигурационном файле nethasp.ini допущены ошибки, процесс поиска может зациклиться или занять длительное время.
В настройках платформы 1С для конкретной базы (в окне запуска при нажатии кнопки «Изменить») следует проверить следующие параметры:
Для детальной диагностики процесса получения лицензии рекомендуется настроить Технологический журнал (ТЖ). Создадим файл logcfg.xml в каталоге conf вашей платформы и добавим событие LIC. Это позволит увидеть, на каком этапе происходит затык. Если в логах видно событие запроса лицензии, но отсутствует ответ, проблема гарантированно в доступности ключа или менеджера лицензий для веб-сервера.
<config xmlns="http://v8.1c.ru/7.4/get/logcfg">
<log location="C:\Logs\1C_Lic" history="1">
<event>
<eq property="Name" value="LIC"/>
</event>
<property name="All"/>
</log>
</config>
Иногда файл публикации default.vrd создается с некорректными параметрами или правами, если конфигуратор был запущен от имени обычного пользователя. Попробуем выполнить перепубликацию базы, соблюдая строгую последовательность:
Современные версии Windows отдают приоритет протоколу IPv6. Веб-сервер Apache может пытаться прослушивать адрес ::1, в то время как 1С обращается к 127.0.0.1. Это может вызывать задержки при инициализации модулей wsap24.dll.
Выясним, как это исправить в конфигурационном файле httpd.conf (обычно находится в папке conf установленного Apache):
Найдем строку Listen 80 и заменим ее на явное указание IPv4-адреса:
Listen 0.0.0.0:80
Также проанализируем параметры модуля mpm_winnt_module. Если пользователей много, Apache может не хватать потоков для обработки тяжелых запросов от платформы 1С. Попробуем увеличить лимиты, добавив или изменив секцию в конфиге:
<IfModule mpm_winnt_module>
ThreadsPerChild 150
MaxConnectionsPerChild 0
</IfModule>
Ситуация, когда база «висит», часто возникает при несовпадении битности веб-сервера и платформы 1С. Рассмотрим ситуацию: если у вас установлен 64-битный Apache, то и путь к модулю в файле httpd.conf должен вести к 64-битной версии 1С.
Типичная строка подключения модуля выглядит так:
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.XX.XXXX/bin/wsap24.dll"
Убедитесь, что файл wsap24.dll берется из папки Program Files (для 64-битной платформы) или Program Files (x86) (для 32-битной), в зависимости от разрядности вашего веб-сервера. Смешивание разрядностей приводит к тому, что Apache запускается, но при попытке загрузить модуль 1С для обработки запроса процесс «замирает».
Подводя итог, если новая база в 1С зависает при публикации, выполните совместную проверку следующих пунктов:
bin платформы?nethasp.ini?httpd.exe при попытке доступа к файлам базы?Соблюдение этих инструкций в большинстве случаев позволяет полностью устранить проблему «вечного ожидания» при входе в 1С через веб-интерфейс.