При публикации файловой информационной базы 1С:Предприятия на веб-сервере Apache 2.4 администраторы нередко сталкиваются с ситуацией, когда веб-сервис или веб-клиент отказывается запускаться. В окне браузера или системных логах появляется сообщение: «Ошибка загрузки компонент работы с файловым вариантом информационной базы» или «Ошибка загрузки компоненты rclient».
Разберем подробно причины возникновения этой ошибки, внутреннюю механику взаимодействия веб-сервера с компонентами платформы 1С и пошаговые способы устранения неполадки.
Проанализируем архитектуру работы файловой базы через веб-сервер. В отличие от клиент-серверного варианта, где обработка запросов делегируется кластеру серверов 1С, при работе с файловой базой модуль веб-сервера (wsap24.dll) исполняет код и обращается к файлу 1Cv8.1CD напрямую внутри своего рабочего процесса.
Для выполнения этих операций веб-серверу требуются полнофункциональные библиотеки ядра 1С, в частности компонента rclient (библиотека клиентского окружения и работы с базой данных). Ошибка возникает в следующих случаях:
default.vrd или директивы в httpd.conf с путями к 32-разрядным библиотекам из каталога Program Files (x86), которые 64-битный процесс Apache загрузить не может.rclient завершится сбоем.PATH первым указан каталог 32-битной платформы 1С, служба веб-сервера при разрешении динамических зависимостей может пытаться подтянуть 32-битные библиотеки в 64-битный процесс.LOCAL SERVICE или SYSTEM), не имеет достаточных прав на каталоги bin платформы 1С, папку с файловой базой или временный каталог C:\Windows\Temp.Рассмотрим основной и наиболее надежный способ исправления ошибки. Если вы используете 64-битную сборку Apache 2.4 на 64-битной операционной системе Windows, выполним следующие шаги:
rclient.dll и смежные модули) в каталог C:\Program Files\1cv8\<НомерРелиза>\bin\.
httpd.exe -k restart
Чтобы исключить влияние графического клиента и гарантировать использование корректной разрядности библиотек, используем утилиту командной строки webinst, расположенную непосредственно в каталоге нужной версии платформы.
Разберем пример публикации файловой базы через командную строку от имени администратора:
"C:\Program Files\1cv8\8.3.24.1548\bin\webinst.exe" -apache24 -wsdir BaseName -dir "C:\inetpub\wwwroot\BaseName" -connstr "File=""D:\1C_Bases\MyBase"";" -confpath "C:\Apache24\conf\httpd.conf"
Вызов утилиты из каталога Program Files (без приставки (x86)) однозначно свяжет веб-сервер с 64-разрядным модулем wsap24.dll и корректными системными библиотеками.
Проанализируем файл конфигурации веб-сервера httpd.conf. Найдем блок директив, добавленный платформой 1С. Убедимся, что путь к модулю не содержит подстроки (x86):
# Загрузка модуля 1С для 64-битного Apache 2.4
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.24.1548/bin/wsap24.dll"
Если Apache 32-битный, путь, наоборот, должен указывать на C:/Program Files (x86)/.... Смешивание разрядностей недопустимо.
Также проверим права доступа для учетной записи службы веб-сервера (по умолчанию NETWORK SERVICE или LOCAL SYSTEM):
1Cv8.1CD) пользователю службы должны быть выданы полные права (Чтение, Запись, Изменение).default.vrd) требуются права на Чтение и Запись.C:\Program Files\1cv8\<Релиз>\bin требуются права на Чтение и Выполнение.C:\Windows\Temp требуются права на Чтение и Запись.При использовании файловой базы под управлением веб-сервера необходимо учитывать ряд технических ограничений:
1Cv8.1CD на сетевых ресурсах (UNC-пути) при веб-публикации не поддерживается разработчиками платформы из-за особенностей работы файловых блокировок.