Часто в практике системного администрирования возникает задача: на одном сервере (назовем его «Веб-сервер») установлен IIS или Apache, а сама файловая база 1С (файл 1Cv8.1CD) располагается на другом компьютере или файловом хранилище в той же локальной сети. Попытка стандартной публикации через Конфигуратор в таких случаях часто заканчивается ошибкой при попытке запуска: «Ошибка загрузки компоненты help» или «Ошибка загрузки компонент работы с файловым вариантом информационной базы». Проанализируем, почему это происходит и как правильно настроить систему для работы в такой конфигурации.
Когда вы открываете базу 1С в режиме «Толстого» или «Тонкого» клиента со своего рабочего места, программа работает от имени вашей учетной записи Windows. У вас есть права на чтение и запись в сетевую папку, поэтому всё работает корректно. Однако, когда обращение к базе идет через веб-сервер, посредником выступает служба (IIS или Apache).
По умолчанию эти службы запускаются от имени специальных системных учетных записей, таких как LocalSystem, NetworkService или IUSR. Эти учетные записи имеют широкие права на локальном компьютере, но абсолютно бесправны в локальной сети. Они не могут «выйти» за пределы своего сервера и постучаться в общую папку соседнего компьютера. Именно поэтому 1С выдает ошибку загрузки компонент — она просто не видит файлы базы по указанному пути, а ошибка «help» является лишь «маской» первой возникшей проблемы инициализации движка.
Разберем, как заставить веб-сервер представляться сетевым пользователем, который имеет доступ к базе.
Если вы используете Microsoft IIS:
DefaultAppPool).Если вы используете Apache:
Win + R, введите services.msc и найдите службу Apache2.x..\Admin или DOMAIN\User) и его пароль.Проанализируем распространенную ошибку: использование букв дисков. Если на компьютере с веб-сервером вы подключили сетевую папку как диск Z:, веб-сервер его не увидит. Подключенные диски существуют только внутри сессии пользователя, а службы работают в «нулевой» сессии.
Необходимо использовать только полные UNC-пути вида \\ИмяКомпьютера\ИмяПапки\. Проверим, как прописан путь в файле настроек публикации. Рассмотрим файл default.vrd, который обычно находится в папке C:\inetpub\wwwroot\ИмяБазы\ (для IIS) или в каталоге, указанном при публикации (для Apache).
Пример корректного содержимого файла 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="File="\\Comp-Server-01\1c_bases\Trade";">
<standardOdata enable="false"
publishExtensions="false"/>
</point>
Обратите внимание на строку ib="File="\\Comp-Server-01\1c_bases\Trade";". Путь должен быть именно таким, с двойными обратными слешами в начале.
Рассмотрим важный нюанс: прав «только чтение» недостаточно. Пользователь, от имени которого теперь работает веб-сервер, должен иметь полные права на папку с базой. Пройдите на компьютер, где физически лежит база, и проверьте две вкладки в свойствах папки:
Если после настройки прав ошибка «Ошибка загрузки компоненты help» сохраняется, проанализируем разрядность системы. Веб-сервер (например, 64-битный IIS) требует наличия 64-битных расширений веб-сервера 1С. Если вы установили 32-битную платформу 1С, но используете 64-битный режим пула приложений в IIS, возникнет конфликт компонент.
Также важно обеспечить доступ к временным папкам. Программа 1С при работе через веб-сервер создает временные файлы на локальном диске сервера, где установлен веб-сервер. Убедитесь, что у пользователя, под которым работает служба веб-сервера, есть права на запись в папку C:\Windows\Temp или персональную папку Temp профиля этого пользователя.
Несмотря на то, что технически запустить публикацию сетевой файловой базы возможно, мы крайне рекомендуем рассмотреть альтернативные варианты. Рассмотрим причины, почему такая схема считается рискованной:
1Cv8.1CD очень чувствительна к качеству связи. Любой кратковременный «мигание» сети между веб-сервером и компьютером с базой во время записи транзакции может привести к необратимому повреждению информационной базы.Рекомендация: Лучшим решением будет перенести файлы базы данных непосредственно на диск того сервера, где работает веб-сервер. Если же база должна быть доступна из разных мест, рассмотрите переход на клиент-серверный вариант (с использованием MS SQL Server или PostgreSQL), который штатно предназначен для работы через сеть и обеспечивает на порядок более высокую надежность и скорость.