Как опубликовать файловую базу 1С с соседнего компьютера на веб-сервере и исправить ошибку загрузки компоненты help

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

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

В этой статье мы подробно разберем, почему возникает данная проблема, проанализируем механизмы работы операционной системы Windows с сетевыми дисками и веб-службами, а также предоставим пошаговую инструкцию по правильной настройке сквозного доступа веб-сервера к сетевым каталогам.

Выясняем причину: почему веб-сервер «не видит» соседний компьютер?

Для того чтобы понять корень проблемы, нам необходимо детально рассмотреть две фундаментальные особенности работы операционных систем семейства Windows и веб-серверов.

1. Изоляция сессий (Session 0 Isolation) и сетевые диски.

Когда вы подключаете сетевой ресурс как локальный диск (например, присваиваете сетевой папке букву Y:\), эта связь создается исключительно в контексте вашего текущего пользовательского сеанса. Службы Windows, такие как веб-сервер Apache или служба IIS (World Wide Web Publishing Service), запускаются в изолированной системной сессии, известной как Session 0. Веб-сервер физически не имеет доступа к пользовательским сетевым дискам. Для него пути вида Y:\TOOLombard просто не существует, что и приводит к системной ошибке 3(0x00000003): Системе не удается найти указанный путь.

2. Ограничения прав системных учетных записей.

По умолчанию веб-серверы устанавливаются и запускаются от имени локальных системных учетных записей:

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

---

Разбираем решение по шагам

Чтобы успешно опубликовать файловую базу 1С, расположенную на соседнем компьютере, нам потребуется выполнить комплексную настройку: отказаться от использования букв дисков, перенастроить учетную запись службы веб-сервера и правильно распределить права доступа на сетевом каталоге.

Шаг 1. Переход на использование UNC-путей

Первое и обязательное правило: при публикации базы, находящейся на другом ПК, забудьте про буквы дисков (Y:\, Z:\ и т.д.). Необходимо использовать только прямые сетевые пути в формате UNC (Universal Naming Convention).

Формат UNC-пути выглядит следующим образом:

\\ИмяКомпьютераИсточника\ИмяОбщейПапки

В нашем примере, если соседний компьютер называется Comp2, а папка с базой опубликована в сети под именем TOOLombard, то правильный путь к информационной базе будет выглядеть так:

\\Comp2\TOOLombard

При публикации базы через Конфигуратор 1С (меню «Администрирование» -> «Публикация на веб-сервере...») этот путь автоматически пропишется в конфигурационный файл виртуального ресурса default.vrd. Давайте посмотрим на пример правильного содержимого файла 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="/TOOLombard"
       ib="File=&quot;\\Comp2\TOOLombard&quot;;">
    <ws>
        <point name="WebServices" alias="ws.1cws"/>
    </ws>
</point>

Обратите внимание на строку инициализации базы ib. Путь к каталогу должен быть четко прописан через двойной слэш и указывать на сетевой ресурс, а не на локальную букву диска.

Шаг 2. Настройка прав доступа на соседнем компьютере (сервере базы данных)

Теперь перейдем к компьютеру, на котором физически лежит папка с базой данных (в нашем случае — Comp2). Веб-сервер должен иметь возможность не просто читать файлы из этой папки, но и изменять их, создавать новые временные файлы, а также файлы блокировок *.1cLck.

  1. Откройте проводник на соседнем компьютере, найдите папку с файловой базой 1С, нажмите на нее правой кнопкой мыши и выберите «Свойства».
  2. Перейдите на вкладку «Доступ» (Sharing) и нажмите кнопку «Расширенная настройка общего доступа».
  3. Установите флажок «Открыть общий доступ к этой папке». Нажмите кнопку «Разрешения» (Permissions).
  4. Убедитесь, что пользователю, под которым веб-сервер будет обращаться к этой папке (мы настроим его на следующем шаге), предоставлены права «Полный доступ» (Full Control) и «Изменение» (Change). Если компьютеры работают в рабочей группе (без домена Active Directory), самым простым решением будет временно предоставить полный доступ группе «Все» (Everyone) на уровне сетевого общего ресурса, а безопасность разграничить на уровне NTFS.
  5. Перейдите на вкладку «Безопасность» (Security) свойств папки. Это критически важно, так как права безопасности NTFS имеют приоритет. Нажмите кнопку «Изменить» и добавьте пользователя, под которым будет работать веб-сервер. Предоставьте ему права «Модификация» (Modify), «Чтение и выполнение», «Список содержимого папки», «Чтение» и «Запись».

Шаг 3. Изменение учетной записи веб-сервера

Для того чтобы веб-сервер мог авторизоваться на соседнем компьютере и получить доступ к сетевой папке, нам необходимо запустить его службу от имени реального пользователя, имеющего сетевые права.

Важное архитектурное замечание для бесшовной интеграции:

Рассмотрим, как настроить запуск веб-серверов под этой учетной записью.

Вариант А. Настройка для веб-сервера Apache

Если в качестве веб-сервера вы используете Apache, выполните следующие действия:

  1. Нажмите комбинацию клавиш Win + R, введите команду services.msc и нажмите Enter для запуска оснастки «Службы».
  2. В списке служб найдите службу вашего веб-сервера (обычно она называется Apache2.4).
  3. Нажмите по службе правой кнопкой мыши и выберите «Свойства».
  4. Перейдите на вкладку «Вход в систему» (Log On).
  5. Переключите переключатель из положения «С системной учетной записью» (Local System account) в положение «С учетной записью» (This account).
  6. Нажмите кнопку «Обзор» и выберите созданного ранее пользователя (локального или доменного), у которого есть права доступа к сетевой папке на соседнем ПК.
  7. Введите и подтвердите пароль этого пользователя, затем нажмите «Применить» и «ОК».
  8. Перезапустите службу Apache, чтобы изменения вступили в силу.

Вариант Б. Настройка для веб-сервера IIS

Если публикация выполнена на IIS, процесс настройки учетных записей выглядит иначе, так как IIS разделяет обработку запросов по пулам приложений:

  1. Откройте «Диспетчер служб IIS» (команда inetmgr в окне Выполнить).
  2. В левом дереве подключений выберите раздел «Пулы приложений» (Application Pools).
  3. Найдите пул приложений, который обслуживает вашу публикацию 1С (по умолчанию это может быть DefaultAppPool, либо созданный вами отдельный пул).
  4. Кликните по нему правой кнопкой мыши и выберите «Дополнительные параметры» (Advanced Settings).
  5. В разделе «Модель процесса» (Process Model) найдите параметр «Удостоверение» (Identity) и нажмите на кнопку с троеточием рядом с его значением.
  6. В появившемся окне выберите вариант «Особая учетная запись» (Custom account) и нажмите «Установить» (Set).
  7. Укажите имя пользователя и пароль учетной записи, обладающей сетевым доступом к базе на соседнем ПК, и нажмите «ОК».
  8. Дополнительно перейдите в левом дереве к вашему опубликованному сайту (виртуальному каталогу 1С), откройте раздел «Аутентификация» (Authentication) в центральной части окна.
  9. Выберите пункт «Анонимная проверка подлинности» (Anonymous Authentication), нажмите кнопку «Изменить» в правой панели действий и переключите ее в режим «Удостоверение пула приложений» (Application pool identity). Это гарантирует, что веб-сервер будет обращаться к файловой системе от имени настроенного нами сетевого пользователя, а не встроенного локального аккаунта IUSR.
  10. Выполните перезапуск IIS (команда iisreset в командной строке от имени администратора).

---

Анализируем риски: почему публикация базы по сети — плохая практика?

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

1. Двойные сетевые задержки и низкая производительность.

При стандартной схеме веб-сервер выполняет тяжелые дисковые операции с локальной базой данных на сверхвысокой скорости. В схеме с соседним компьютером возникает так называемая «двойная сеть». Сначала клиент отправляет запрос на веб-сервер по протоколу HTTP/HTTPS, затем веб-сервер транслирует этот запрос в дисковые вызовы и отправляет их по сети на соседний компьютер через протокол SMB (сетевой доступ Windows). Протокол SMB абсолютно не оптимизирован для передачи огромного количества мелких запросов к СУБД, каковой по сути является файловая база 1С. В результате пользователи столкнутся с сильными зависаниями интерфейса и долгой загрузкой отчетов.

2. Высокий риск необратимого повреждения базы данных.

Файловая база 1С (файл 1Cv8.1CD) критически чувствительна к качеству сетевого соединения. В процессе записи документов СУБД 1С выполняет транзакции, блокируя определенные участки файла базы данных. Если в момент проведения сложного документа или закрытия месяца в локальной сети произойдет секундный микросбой (моргнет коммутатор, перезагрузится роутер или обновится сетевой драйвер), сетевое соединение между веб-сервером и соседним ПК разорвется. Это приведет к незавершенной транзакции и практически гарантированному разрушению внутренней структуры базы данных. Вам придется регулярно использовать утилиту восстановления chdbfl.exe, а в худшем случае — откатываться к резервным копиям с потерей данных за рабочий день.

---

Рекомендуемые альтернативные решения

Проанализировав все технологические риски, мы рекомендуем рассмотреть более надежные варианты организации инфраструктуры:

← На главную