Администрирование · 12 мин
Как опубликовать веб-сервис 1С на веб-сервере
Как опубликовать веб-сервис 1С через Apache или IIS: настройка публикации, файл default.vrd, права доступа, проверка работы и типичные ошибки. Практическое руководство.
Публикация веб-сервиса 1С — это способ открыть доступ к функциям информационной базы извне: из других информационных систем, мобильных приложений, сайтов или внешних скриптов. Механизм работает через веб-сервер (Apache или IIS), который принимает HTTP-запросы и передаёт их платформе 1С:Предприятие через специальный модуль расширения.
В 1С существует два типа сервисов: классические SOAP веб-сервисы (объект конфигурации «Web-сервис») и HTTP-сервисы, работающие по принципам REST. Оба публикуются одинаково — через диалог публикации в конфигураторе или вручную правкой файла default.vrd. Различия проявляются только в формате обращения: SOAP-сервис отдаёт WSDL-описание, HTTP-сервис принимает запросы по заданному шаблону URL.
Ниже разобран полный цикл: от подготовки веб-сервера до проверки работоспособности сервиса и типичных ошибок, из-за которых публикация «не встаёт» с первого раза.
Что потребуется перед началом работы
Для публикации нужны три компонента: работающая информационная база (файловая или клиент-серверная), веб-сервер и модуль расширения веб-сервера 1С. Модуль устанавливается вместе с платформой — при установке нужно отметить соответствующий компонент в установщике. Если при установке платформы этот пункт пропустили, модуль придётся доустановить отдельно, иначе веб-сервер не сможет обращаться к базе.
В качестве веб-сервера чаще всего используют Apache 2.4 — он бесплатен, хорошо документирован и одинаково работает на Windows и Linux. Альтернатива — IIS, если инфраструктура уже построена на Windows Server. Важно учитывать разрядность: для 64-разрядного модуля расширения нужен 64-разрядный Apache, несовпадение разрядности — одна из самых частых причин ошибки загрузки модуля.
Также заранее определите, какая учётная запись будет обращаться к базе. Для файловой базы веб-серверу нужны права на каталог с базой; для клиент-серверной — пользователь 1С с правами на выполнение операций сервиса. Использовать административную учётную запись для внешних обращений небезопасно.
Создание веб-сервиса в конфигураторе
Прежде чем публиковать, сервис должен существовать в конфигурации. В конфигураторе откройте ветку «Общие → Web-сервисы» и добавьте новый объект. Задайте имя, пространство имён (обычно вида http://ваша-организация/ИмяСервиса) и имя файла публикации — по умолчанию оно совпадает с именем сервиса.
Внутри сервиса создаются операции, а внутри операций — параметры. Для каждой операции в модуле сервиса пишется функция на встроенном языке, которая выполняет нужную логику: возвращает остатки, создаёт документ, проверяет контрагента. Типы параметров можно задавать как простыми типами XDTO (string, int, boolean), так и объектами из пакетов XDTO конфигурации.
Если нужен REST-подобный интерфейс вместо SOAP, используйте объект «HTTP-сервисы». В нём задаётся корневой URL и шаблоны URL, например /goods/{id}, а в обработчиках методов (GET, POST и других) формируется ответ — обычно JSON. HTTP-сервисы проще интегрируются с сайтами и мобильными приложениями, SOAP удобнее для обмена между учётными системами.
Публикация через конфигуратор на Apache
Самый простой способ — встроенный диалог публикации. Откройте конфигуратор от имени администратора (это важно: без повышенных прав конфигуратор не сможет изменить конфигурацию веб-сервера) и перейдите в меню «Администрирование → Публикация на веб-сервере».
В диалоге укажите имя публикации (латиницей, без пробелов — оно станет частью URL), выберите тип веб-сервера Apache 2.4, каталог публикации и отметьте флажками, что публиковать: веб-сервисы, HTTP-сервисы, тонкий клиент через веб. Нажмите «Опубликовать». Конфигуратор создаст файл default.vrd в указанном каталоге и добавит в httpd.conf строку подключения модуля расширения.
- 1Установите Apache 2.4 нужной разрядности и проверьте, что он запускается
- 2Установите модуль расширения веб-сервера из дистрибутива платформы 1С
- 3Откройте конфигуратор от имени администратора
- 4Перейдите: Администрирование → Публикация на веб-сервере
- 5Укажите имя публикации, каталог, отметьте веб-сервисы и HTTP-сервисы
- 6Нажмите «Опубликовать» и перезапустите Apache
- 7Откройте в браузере http://localhost/ИмяПубликации/ws/ИмяСервиса?wsdl
Если Apache установлен в нестандартный каталог или конфигуратор не видит его конфигурацию, публикацию можно выполнить вручную. Для этого в httpd.conf добавляется загрузка модуля wsap24.dll (Windows) или wsap24.so (Linux) и секция, указывающая на каталог с default.vrd:
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.22.1750/bin/wsap24.dll"
Alias "/mybase" "C:/inetpub/mybase"
<Directory "C:/inetpub/mybase">
AllowOverride All
Require all granted
SetHandler 1c-application
ManagedApplicationDescriptor "C:/inetpub/mybase/default.vrd"
</Directory>После любой правки httpd.conf веб-сервер нужно перезапускать. Если Apache не стартует, смотрите его журнал ошибок (error.log): там будет указано, какая строка конфигурации не обработалась — чаще всего это неверный путь к модулю или несовпадение разрядности.
Публикация на IIS
Для IIS процесс похож, но есть особенности. Сначала в компонентах Windows должны быть включены службы IIS и поддержка ISAPI-расширений. Затем в конфигураторе в диалоге публикации выберите тип веб-сервера IIS — конфигуратор создаст виртуальный каталог и зарегистрирует обработчик.
Ключевой момент — пул приложений. Для 64-разрядного модуля 1С в настройках пула параметр «Enable 32-Bit Applications» должен быть отключён. Удостоверение пула (identity) должно иметь доступ к каталогу файловой базы или возможность подключаться к серверу 1С. При ошибках «500 Internal Server Error» первым делом проверяйте именно настройки пула и разрешения ISAPI-модуля в разделе «Ограничения ISAPI и CGI».
Сравнение веб-серверов для публикации 1С
Бесплатный, работает на Windows и Linux, гибкая конфигурация. Подходит для большинства случаев. Требует ручной настройки при нестандартной установке.
Встроен в Windows Server, интегрируется с доменной аутентификацией. Удобен, если инфраструктура уже на Windows. Не подходит для Linux-серверов.
Вариант, когда нет возможности поднимать свой веб-сервер. Ограничения зависят от конкретного сервиса, подходит для небольших баз и тестирования.
Аутентификация и безопасность публикации
По умолчанию опубликованный сервис требует аутентификации пользователя 1С: при обращении по URL браузер или клиентское приложение запросит логин и пароль. Это базовая (Basic) аутентификация — пароль передаётся в заголовке запроса, поэтому без HTTPS его можно перехватить. Для любого доступа извне локальной сети настройте SSL-сертификат и переведите публикацию на HTTPS.
Дополнительные меры: создайте отдельного пользователя 1С только для веб-сервиса с минимально необходимыми правами (роли на чтение нужных объектов, без права администрирования), ограничьте доступ к публикации по IP-адресам средствами веб-сервера, отключите публикацию тонкого клиента, если она не нужна — лишний опубликованный интерфейс расширяет поверхность атаки.
Проверка работоспособности сервиса
После публикации откройте в браузере адрес вида http://сервер/ИмяПубликации/ws/ИмяСервиса?wsdl. Если всё настроено верно, после ввода логина и пароля пользователя 1С отобразится XML-описание сервиса (WSDL). Это подтверждает, что веб-сервер, модуль расширения и соединение с базой работают.
Для HTTP-сервиса проверка делается запросом по шаблону URL, например через браузер (для GET-методов) или утилиту curl. Отправьте тестовый запрос и убедитесь, что ответ приходит с кодом 200 и ожидаемым содержимым. Код 401 означает проблему с аутентификацией, 404 — сервис не опубликован или неверный URL, 500 — ошибка в коде обработчика или подключении к базе.
Как проверить результат
Возвращается XML-описание сервиса после ввода учётных данных
Ошибка 404 (сервис не опубликован), 500 (модуль не загружен или нет связи с базой)
Ответ с кодом 200 и корректными данными за разумное время
Таймаут, код 500, пустой ответ
Отсутствуют ошибки загрузки модуля wsap24
Сообщения о невозможности загрузить модуль или обработать default.vrd
Обновление и сопровождение публикации
При изменении состава операций сервиса или добавлении новых сервисов публикацию нужно обновить: повторно выполните публикацию из конфигуратора — файл default.vrd будет перезаписан. Учтите, что при этом затираются ручные правки default.vrd, поэтому если вы добавляли в файл нестандартные настройки, храните их отдельно и документируйте.
Обновление платформы 1С требует внимания к модулю расширения: версия модуля wsap24 должна соответствовать установленной платформе. После обновления платформы перепроверьте путь к модулю в httpd.conf — он содержит номер версии и после обновления может указывать на удалённый каталог старой версии.
Изменения в коде операций веб-сервиса (в модуле сервиса) применяются после обновления конфигурации базы данных, перепубликация при этом не нужна — меняется только логика, а не состав публикуемых сервисов.
Что важно запомнить
Публикация веб-сервиса 1С сводится к трём шагам: установка веб-сервера с модулем расширения 1С, публикация через конфигуратор или default.vrd, проверка через запрос WSDL или шаблон URL. Критичны: совпадение разрядности модуля и веб-сервера, HTTPS для внешнего доступа и отдельная учётная запись с минимальными правами.
Частые вопросы
Можно ли опубликовать веб-сервис для файловой базы 1С?
Да, механизм публикации работает и для файловых баз. В default.vrd указывается строка соединения с каталогом базы. Учтите, что учётная запись, под которой работает веб-сервер, должна иметь доступ к этому каталогу, а при одновременной работе многих внешних клиентов файловый режим станет узким местом по производительности.
Чем HTTP-сервис отличается от веб-сервиса (SOAP) в 1С?
SOAP веб-сервис работает по строгому контракту: автоматически формирует WSDL-описание, использует XML-конверты и удобен для интеграции учётных систем. HTTP-сервис даёт свободу: вы сами задаёте шаблоны URL, методы (GET, POST и др.) и формат ответа, обычно JSON. Для сайтов и мобильных приложений чаще выбирают HTTP-сервисы из-за простоты и меньшего объёма трафика.
Браузер выдаёт ошибку 500 при обращении к сервису. С чего начать диагностику?
Сначала проверьте журнал ошибок веб-сервера: сообщение о невозможности загрузить модуль wsap24 указывает на несовпадение разрядности или неверный путь. Если модуль загружен, проверьте строку соединения в default.vrd и доступность базы. Затем — права пользователя 1С и наличие ошибок в коде операции: исключение в обработчике тоже возвращает код 500.
Нужно ли перезапускать веб-сервер после изменения кода операции?
Нет. Изменения в модуле веб-сервиса применяются после обновления конфигурации базы данных в конфигураторе. Перезапуск веб-сервера требуется только при правке конфигурации самого веб-сервера (httpd.conf) или замене модуля расширения при обновлении платформы.
Как ограничить доступ к опубликованному сервису только из локальной сети?
Средствами веб-сервера: в Apache используйте директивы Require ip с перечнем разрешённых подсетей в секции Directory вашей публикации, в IIS — модуль «Ограничения по IP-адресу и домену». Дополнительно закройте порт публикации на внешнем сетевом экране, оставив доступ только из внутренней сети.
Можно ли опубликовать несколько баз 1С на одном веб-сервере?
Да. Каждая база публикуется под своим именем (каталогом) с отдельным файлом default.vrd. В Apache для каждой публикации создаётся своя секция Alias и Directory, в IIS — отдельное виртуальное приложение. Ограничением служат в основном ресурсы сервера: каждая публикация держит собственные соединения с базами.