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

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

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

Разберем основную причину: права доступа к файловой базе

Одной из самых частых причин, по которой опубликованная база зависает, является отсутствие у веб-сервера прав на чтение и запись файлов базы данных. Важно понимать, под какой учетной записью запущена служба Apache. По умолчанию в ОС Windows веб-сервер часто работает от имени учетной записи SYSTEM (Система).

Проанализируем ситуацию: если у этой учетной записи нет полных прав на каталог с файловой базой 1С (файл 1Cv8.1CD), Apache сможет инициировать соединение, но платформа не сможет открыть файл базы для монопольного или разделяемого доступа, что приведет к бесконечному ожиданию ответа. Выполним следующие действия:

  1. Перейдем к папке, в которой физически расположена ваша файловая база 1С.
  2. Нажмем правой кнопкой мыши на папку и выберем «Свойства», далее перейдем на вкладку Безопасность.
  3. Проверим наличие в списке пользователя СИСТЕМА (или SYSTEM). Если его нет, нажмем «Изменить», затем «Добавить».
  4. Введем имя «СИСТЕМА» и нажмем «Проверить имена».
  5. Установим галочку Полный доступ для данного пользователя.
  6. Нажмем «Применить» и дождемся завершения процесса наследования прав на все вложенные файлы.

Важный нюанс: если ваш 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 создается с некорректными параметрами или правами, если конфигуратор был запущен от имени обычного пользователя. Попробуем выполнить перепубликацию базы, соблюдая строгую последовательность:

  1. Закроем все сеансы 1С и остановим службу Apache.
  2. Запустим 1С:Предприятие (конфигуратор) принудительно через правую кнопку мыши — «Запуск от имени администратора».
  3. Перейдем в меню «Администрирование» — «Публикация на веб-сервере».
  4. Нажмем «Опубликовать». Платформа обновит дескриптор в каталоге веб-сервера.
  5. Запустим службу Apache снова.

Рассмотрим расширенную настройку Apache и протокола IPv4

Современные версии 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С зависает при публикации, выполните совместную проверку следующих пунктов:

  1. Права доступа: Даны ли полные права пользователю SYSTEM на каталог базы и папку bin платформы?
  2. Лицензирование: Прописан ли адрес менеджера лицензий в nethasp.ini?
  3. Антивирус: Не блокирует ли защитное ПО процесс httpd.exe при попытке доступа к файлам базы?
  4. IPv4: Принудительно ли Apache использует IPv4?

Соблюдение этих инструкций в большинстве случаев позволяет полностью устранить проблему «вечного ожидания» при входе в 1С через веб-интерфейс.

← На главную