Как исправить ошибку 405 Method Not Allowed при работе с HTTP-сервисом в 1С?

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

Ошибка 405 Method Not Allowed — это стандартная ситуация, с которой сталкиваются многие разработчики при настройке взаимодействия с 1С через HTTP-сервисы. Эта ошибка означает, что веб-сервер (IIS или Apache) успешно принял ваш запрос, но отклонил выполнение метода POST для указанного адреса. Давайте вместе разберем, почему это происходит и как пошагово устранить данную проблему.

1. Проверка конфигурации HTTP-сервиса

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

  1. Откройте объект HTTP-сервис в конфигураторе.
  2. Перейдите в URL-шаблоны.
  3. Убедитесь, что для вашего шаблона в разделе Методы выбран именно POST.
  4. Если в шаблоне указаны параметры, проверьте их соответствие вызываемому пути.

2. Перепубликация сервиса

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

Для решения проблемы выполните следующие действия:

  1. В конфигураторе перейдите в меню Администрирование — Публикация на веб-сервере.
  2. Снимите публикацию, сохраните настройки, а затем выполните публикацию заново.
  3. После этого обязательно перезапустите пул приложений в IIS (или службу Apache), чтобы сбросить кешированные данные сервера.

3. Влияние модуля WebDAV в IIS

Если вы используете IIS, одной из частых причин блокировки методов POST, PUT и DELETE является включенный модуль WebDAV. Этот модуль предназначен для управления файлами через HTTP и может перехватывать запросы к вашему сервису, считая их попыткой модификации ресурсов.

Мы рекомендуем полностью отключить WebDAV для сайта, где опубликована 1С:

  1. Откройте Диспетчер служб IIS.
  2. Выберите ваш сайт или виртуальный каталог с 1С.
  3. Перейдите в раздел Авторские правила WebDAV. Если вы видите там правила, удалите их.
  4. Также проверьте в Компонентах Windows, установлен ли модуль WebDAV, и при необходимости удалите его, если он не используется для других задач.

4. Использование инструментов отладки

Чтобы понять, на каком этапе «отваливается» запрос, используйте специализированное ПО. Не полагайтесь только на браузер или собственный код.

Postman — отличный инструмент для тестирования. Попробуйте отправить запрос через него: убедитесь, что вы верно выбрали метод POST, добавили необходимые заголовки (например, Content-Type: application/json) и указали авторизацию, если она требуется. Если Postman возвращает 405, значит, ошибка точно на уровне веб-сервера или настроек публикации.

Fiddler — этот инструмент поможет увидеть «сырые» заголовки запроса и ответа. Если сервер блокирует запрос, часто в теле ответа содержится подсказка: например, указание на то, какой именно модуль (например, ManagedPipelineHandler или WebDAVModule) отклонил соединение.

5. Проверка авторизации

Иногда веб-сервер требует авторизацию, и при попытке отправить POST-запрос без корректных учетных данных он может возвращать 405 вместо ожидаемого 401. Попробуйте временно разрешить анонимный доступ к сервису в настройках публикации 1С, чтобы исключить проблему с правами доступа.

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

Проанализируйте каждый из этих шагов по очереди. Обычно комбинация перепубликации и проверки модуля WebDAV решает 90% подобных проблем. Удачной отладки!

← На главную