Публикация файловой информационной базы 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. Ограничения прав системных учетных записей.
По умолчанию веб-серверы устанавливаются и запускаются от имени локальных системных учетных записей:
Local System (Системная учетная запись).ApplicationPoolIdentity или Network Service.Эти системные учетные записи обладают максимальными правами внутри локального компьютера, но они абсолютно «бесправны» в локальной сети. При попытке веб-сервера обратиться к соседнему компьютеру сетевой запрос отклоняется, поскольку удаленный компьютер не может авторизовать этот системный аккаунт. Как результат — платформа 1С на самом первом этапе инициализации сеанса не может получить доступ к файлу базы данных 1Cv8.1CD и аварийно завершает работу, выдавая ошибку загрузки базовой компоненты help.
---
Чтобы успешно опубликовать файловую базу 1С, расположенную на соседнем компьютере, нам потребуется выполнить комплексную настройку: отказаться от использования букв дисков, перенастроить учетную запись службы веб-сервера и правильно распределить права доступа на сетевом каталоге.
Первое и обязательное правило: при публикации базы, находящейся на другом ПК, забудьте про буквы дисков (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="\\Comp2\TOOLombard";">
<ws>
<point name="WebServices" alias="ws.1cws"/>
</ws>
</point>
Обратите внимание на строку инициализации базы ib. Путь к каталогу должен быть четко прописан через двойной слэш и указывать на сетевой ресурс, а не на локальную букву диска.
Теперь перейдем к компьютеру, на котором физически лежит папка с базой данных (в нашем случае — Comp2). Веб-сервер должен иметь возможность не просто читать файлы из этой папки, но и изменять их, создавать новые временные файлы, а также файлы блокировок *.1cLck.
Для того чтобы веб-сервер мог авторизоваться на соседнем компьютере и получить доступ к сетевой папке, нам необходимо запустить его службу от имени реального пользователя, имеющего сетевые права.
Важное архитектурное замечание для бесшовной интеграции:
DOMAIN\1c_web_user).Web1C, пароль: P@ssword123). Добавьте этого пользователя в группу «Администраторы» или «Пользователи» на обоих ПК и назначьте ему права на папку базы, как описано в Шаге 2.Рассмотрим, как настроить запуск веб-серверов под этой учетной записью.
Если в качестве веб-сервера вы используете Apache, выполните следующие действия:
Win + R, введите команду services.msc и нажмите Enter для запуска оснастки «Службы».Apache2.4).Если публикация выполнена на IIS, процесс настройки учетных записей выглядит иначе, так как IIS разделяет обработку запросов по пулам приложений:
inetmgr в окне Выполнить).DefaultAppPool, либо созданный вами отдельный пул).IUSR.iisreset в командной строке от имени администратора).---
Несмотря на то, что технически настроить работу файловой базы по сетевому пути через веб-сервер возможно, и мы только что подробно разобрали этот процесс, в реальной продуктивной эксплуатации данную схему крайне не рекомендуется использовать. Рассмотрим основные технологические риски этой архитектуры.
1. Двойные сетевые задержки и низкая производительность.
При стандартной схеме веб-сервер выполняет тяжелые дисковые операции с локальной базой данных на сверхвысокой скорости. В схеме с соседним компьютером возникает так называемая «двойная сеть». Сначала клиент отправляет запрос на веб-сервер по протоколу HTTP/HTTPS, затем веб-сервер транслирует этот запрос в дисковые вызовы и отправляет их по сети на соседний компьютер через протокол SMB (сетевой доступ Windows). Протокол SMB абсолютно не оптимизирован для передачи огромного количества мелких запросов к СУБД, каковой по сути является файловая база 1С. В результате пользователи столкнутся с сильными зависаниями интерфейса и долгой загрузкой отчетов.
2. Высокий риск необратимого повреждения базы данных.
Файловая база 1С (файл 1Cv8.1CD) критически чувствительна к качеству сетевого соединения. В процессе записи документов СУБД 1С выполняет транзакции, блокируя определенные участки файла базы данных. Если в момент проведения сложного документа или закрытия месяца в локальной сети произойдет секундный микросбой (моргнет коммутатор, перезагрузится роутер или обновится сетевой драйвер), сетевое соединение между веб-сервером и соседним ПК разорвется. Это приведет к незавершенной транзакции и практически гарантированному разрушению внутренней структуры базы данных. Вам придется регулярно использовать утилиту восстановления chdbfl.exe, а в худшем случае — откатываться к резервным копиям с потерей данных за рабочий день.
---
Проанализировав все технологические риски, мы рекомендуем рассмотреть более надежные варианты организации инфраструктуры: