Как опубликовать базу 1С на веб-сервере, если она находится на другом компьютере?

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

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

Выясним причину ошибки: почему не работает сетевой путь?

Когда вы открываете базу 1С в режиме «Толстого» или «Тонкого» клиента со своего рабочего места, программа работает от имени вашей учетной записи Windows. У вас есть права на чтение и запись в сетевую папку, поэтому всё работает корректно. Однако, когда обращение к базе идет через веб-сервер, посредником выступает служба (IIS или Apache).

По умолчанию эти службы запускаются от имени специальных системных учетных записей, таких как LocalSystem, NetworkService или IUSR. Эти учетные записи имеют широкие права на локальном компьютере, но абсолютно бесправны в локальной сети. Они не могут «выйти» за пределы своего сервера и постучаться в общую папку соседнего компьютера. Именно поэтому 1С выдает ошибку загрузки компонент — она просто не видит файлы базы по указанному пути, а ошибка «help» является лишь «маской» первой возникшей проблемы инициализации движка.

Шаг 1. Настройка учетной записи службы веб-сервера

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

Если вы используете Microsoft IIS:

  1. Откройте «Диспетчер служб IIS».
  2. Перейдите в раздел «Пулы приложений» (Application Pools).
  3. Найдите пул, который используется вашей публикацией (обычно он имеет то же имя, что и виртуальный каталог, или используется стандартный DefaultAppPool).
  4. Нажмите правую кнопку мыши и выберите «Дополнительные параметры».
  5. Найдите пункт «Удостоверение» (Identity).
  6. Вместо встроенной учетной записи выберите «Особая учетная запись» и введите логин и пароль пользователя Windows, который имеет права доступа к сетевой папке с базой 1С. Этот пользователь должен существовать в сети (или быть доменным) и иметь пароль.

Если вы используете Apache:

  1. Нажмите Win + R, введите services.msc и найдите службу Apache2.x.
  2. Нажмите правой кнопкой мыши — «Свойства».
  3. Перейдите на вкладку «Вход в систему».
  4. Переключите тумблер с «С системной учетной записью» на «С учетной записью».
  5. Укажите данные пользователя (например, .\Admin или DOMAIN\User) и его пароль.
  6. Перезапустите службу Apache.

Шаг 2. Правильное указание сетевого пути (UNC)

Проанализируем распространенную ошибку: использование букв дисков. Если на компьютере с веб-сервером вы подключили сетевую папку как диск 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=&quot;\\Comp-Server-01\1c_bases\Trade&quot;;">
    <standardOdata enable="false"
            publishExtensions="false"/>
</point>

Обратите внимание на строку ib="File=&quot;\\Comp-Server-01\1c_bases\Trade&quot;;". Путь должен быть именно таким, с двойными обратными слешами в начале.

Шаг 3. Настройка прав доступа к папке

Рассмотрим важный нюанс: прав «только чтение» недостаточно. Пользователь, от имени которого теперь работает веб-сервер, должен иметь полные права на папку с базой. Пройдите на компьютер, где физически лежит база, и проверьте две вкладки в свойствах папки:

  1. Доступ (Sharing): добавьте пользователя и дайте ему права «Чтение и изменение».
  2. Безопасность (NTFS): добавьте этого же пользователя и разрешите ему «Полный контроль» или как минимум «Изменение», «Чтение и выполнение», «Список содержимого папки», «Чтение», «Запись».

Шаг 4. Проблема разрядности и временных папок

Если после настройки прав ошибка «Ошибка загрузки компоненты help» сохраняется, проанализируем разрядность системы. Веб-сервер (например, 64-битный IIS) требует наличия 64-битных расширений веб-сервера 1С. Если вы установили 32-битную платформу 1С, но используете 64-битный режим пула приложений в IIS, возникнет конфликт компонент.

Также важно обеспечить доступ к временным папкам. Программа 1С при работе через веб-сервер создает временные файлы на локальном диске сервера, где установлен веб-сервер. Убедитесь, что у пользователя, под которым работает служба веб-сервера, есть права на запись в папку C:\Windows\Temp или персональную папку Temp профиля этого пользователя.

Стоит ли использовать такую схему?

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

Рекомендация: Лучшим решением будет перенести файлы базы данных непосредственно на диск того сервера, где работает веб-сервер. Если же база должна быть доступна из разных мест, рассмотрите переход на клиент-серверный вариант (с использованием MS SQL Server или PostgreSQL), который штатно предназначен для работы через сеть и обеспечивает на порядок более высокую надежность и скорость.

← На главную