Публикация базы данных 1С:Предприятие на веб-сервере — это стандартная задача, позволяющая пользователям работать через браузер или тонкий клиент из любой точки мира. Однако процесс часто сопровождается техническими сложностями, особенно если сервер находится за роутером, а интернет-провайдер предоставляет динамический IP-адрес. В данной статье мы подробно разберем, как преодолеть эти препятствия, настроить инфраструктуру и обеспечить стабильный доступ к 1С.
Первая и самая частая причина, по которой база 1С недоступна из интернета после публикации на IIS (Internet Information Services), — это закрытые порты на сетевом оборудовании. По умолчанию IIS работает на порту 80 (для протокола HTTP) и 443 (для защищенного HTTPS). Рассмотрим, как организовать доступ по шагам.
Проанализируем ситуацию: ваш компьютер с установленным IIS имеет локальный IP-адрес в домашней или офисной сети (например, 192.168.1.10). Когда вы пытаетесь обратиться к базе по внешнему IP-адресу, запрос приходит на роутер. Роутер, не имея специальных инструкций, "не знает", какому именно устройству внутри сети предназначен этот запрос, и отбрасывает его. Для решения этой проблемы нам необходимо настроить Port Forwarding (проброс портов).
Выясним причину, почему даже после этого база может быть недоступна. Убедимся, что Брандмауэр Windows на самом сервере разрешает входящие подключения для веб-сервера. Разберем, как добавить правило: перейдем в "Монитор брандмауэра Windows в режиме повышенной безопасности", выберем "Правила для входящих подключений" и разрешим работу для порта 80.
Если ваш IP-адрес меняется при каждом перезапуске роутера, прямое использование IP в ссылке становится невозможным. Рассмотрим два пути решения этой задачи.
Вариант 1: Использование DDNS (Dynamic DNS). Разберем принцип работы: специальный сервис (например, No-IP или DuckDNS) предоставляет вам постоянное доменное имя (например, mycompany1c.ddns.net). Программа-клиент на вашем сервере периодически сообщает сервису ваш текущий внешний IP. Таким образом, при обращении по доменному имени запрос всегда будет перенаправляться на актуальный адрес.
Вариант 2: Использование Mesh-VPN (Tailscale, ZeroTier). Это современный и безопасный метод, который позволяет вообще не открывать порты в интернет. Рассмотрим его подробнее: вы устанавливаете клиент сети на сервер и на клиентское устройство. Они объединяются в виртуальную локальную сеть, где каждому присваивается статический внутренний IP. Обращение к 1С будет происходить по этому внутреннему адресу, как если бы вы были в одном офисе.
После того как связь установлена, необходимо убедиться, что сам IIS правильно обрабатывает запросы от платформы 1С. Часто возникают ошибки из-за несоответствия разрядности или прав доступа. Проанализируем настройки Пула приложений.
В диспетчере IIS выберем "Пулы приложений". Найдем тот пул, который используется вашей публикацией (обычно это DefaultAppPool). Если вы используете 64-битную версию платформы 1С, убедитесь, что в дополнительных параметрах пула свойство "Разрешить 32-разрядные приложения" установлено в значение False. Если платформа 32-битная — наоборот, True.
Разберем настройку обработчиков. При публикации 1С создает в папке с сайтом файл default.vrd. Этот файл содержит описание подключения к базе. Однако IIS должен знать, какой модуль (DLL) отвечает за обработку расширений 1С. Посмотрим на пример пути к расширению для версии 8.3.14:
C:\Program Files\1cv8\8.3.14.1694\bin\wsap24.dll
Убедимся, что в разделе "Сопоставление обработчиков" для вашего сайта прописан путь к актуальной версии wsap24.dll (для IIS 7.0 и выше). Если версия платформы обновилась, публикацию необходимо переподтянуть через конфигуратор 1С или вручную поправить пути в IIS.
Поскольку мы рассматриваем именно файловую базу, крайне важно правильно настроить права файловой системы NTFS. В отличие от клиент-серверного варианта, где к SQL-базе обращается сервер приложений, при веб-публикации файловой базы к файлу 1Cv8.1CD обращается сам процесс IIS.
Рассмотрим по шагам настройку прав:
1Cv8.1CD.IIS_IUSRS (локальная группа пользователей веб-сервера).default.vrd и web.config).Публикация базы по протоколу HTTP без защиты — это серьезный риск. Пароли пользователей передаются в открытом виде и могут быть перехвачены. Рассмотрим, как обезопасить систему.
Настройка HTTPS. Проанализируем использование бесплатных сертификатов. Мы рекомендуем использовать утилиту Win-ACME для автоматического получения сертификатов от Let's Encrypt. После установки сертификата трафик будет зашифрован, а доступ к базе будет осуществляться по адресу https://....
Ограничение по IP. Если вы знаете, что доступ к базе будет осуществляться только из конкретных офисов или домов с фиксированными адресами, воспользуйтесь модулем IIS "Ограничения IP-адресов и доменов". Это позволит отсечь любые попытки подбора паролей из остального интернета.
Версия платформы 8.3.14.1694 имеет свои особенности. Выясним причину возможных сбоев: данная ветка платформы требует наличия определенных компонентов Visual C++ Redistributable. Если при попытке открыть страницу 1С вы видите "Ошибка 500", проверьте установку всех необходимых библиотек Windows и убедитесь, что в компонентах IIS включены "Расширения ISAPI" и "Фильтры ISAPI".
Посмотрим на типичную структуру файла 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="/CRM_Prihod"
ib="File="C:\Bases\CRM_Prihod";">
<standardOdata enable="false"/>
<analytics enable="false"/>
</point>
Убедимся, что путь в параметре ib соответствует реальному расположению вашей базы на диске. Если вы перенесли базу, этот файл нужно отредактировать вручную или переопубликовать базу из конфигуратора 1С, запустив его от имени Администратора.
Подводя итог, публикация файловой базы 1С — это комплексный процесс, включающий настройку сети, прав доступа и безопасности. Помните, что файловый режим через веб-сервер предназначен для небольшого количества пользователей. Если ваша нагрузка возрастет, рекомендуем рассмотреть переход на клиент-серверный вариант работы.