Интеграция 1С:Предприятие с веб-серверами через ISAPI-расширения — ключевой механизм для организации обмена данными по протоколу HTTP/HTTPS. Без корректной настройки ISAPI DLL невозможно запустить веб-сервисы 1С, опубликовать базы в интернете или настроить взаимодействие с внешними системами через REST или SOAP. Однако многие администраторы сталкиваются с ошибками на этапе активации расширения: сервер не видит модуль, возвращает код 500, или 1С просто игнорирует настройки публикации.

В этой статье мы разберём весь процесс — от установки wsap32.dll (или wsap64.dll для 64-битных систем) до диагностики типичных проблем. Особое внимание уделим конфликту версий IIS и 1С, который возникает при обновлении платформы, но забывают обновить сами ISAPI-фильтры. Также вы узнаете, как проверить, что расширение действительно загружено сервером, и какие логи анализировать при сбоях.

Что такое ISAPI DLL и зачем оно нужно в 1С

ISAPI (Internet Server Application Programming Interface) — это интерфейс для создания динамических веб-приложений под Microsoft IIS. В контексте 1С речь идёт о двух ключевых файлах:

  • 📁 wsap32.dll — 32-битная версия расширения (для старых систем или 32-битного IIS).
  • 📁 wsap64.dll — 64-битная версия (актуальна для современных серверов).

Эти модули позволяют:

  • 🌐 Опубликовать базу 1С в вебе через веб-клиент или тонкий клиент.
  • 🔄 Организовать обмен данными по HTTP (например, для интеграции с сайтами на Bitrix или 1С-Битрикс).
  • 🔌 Подключить внешние системы через REST API или SOAP.
  • 📊 Автоматизировать загрузку/выгрузку данных (например, для 1С:УТ или 1С:Бухгалтерии).

Без ISAPI DLL публикация базы в интернете невозможна — сервер просто не сможет обработать запросы к 1С. При этом важно понимать, что само расширение не является частью платформы 1С: его нужно устанавливать отдельно и настраивать вручную.

📊 Какой веб-сервер вы используете для 1С?
IIS
Apache
Nginx
Другой
Не знаю

Требования к системе перед настройкой ISAPI DLL

Прежде чем приступать к установке, убедитесь, что ваша система соответствует минимальным требованиям:

Компонент Минимальная версия Рекомендуемая версия
Операционная система Windows Server 2008 R2 Windows Server 2019/2022
IIS (Internet Information Services) IIS 7.0 IIS 10.0
Платформа 1С:Предприятие 8.3.6 8.3.20+
Разрядность системы 32-bit или 64-bit 64-bit (для современных нагрузок)

Критично важно, чтобы разрядность IIS и ISAPI DLL совпадали. Например, если у вас 64-битный IIS, но вы пытаетесь зарегистрировать wsap32.dll, сервер просто проигнорирует модуль. Также проверьте, что:

  • 🔹 У пользователя, под которым работает IIS, есть права на чтение папки с 1С (обычно C:\Program Files\1cv8\).
  • 🔹 Включены компоненты IIS: ASP.NET, ISAPI Extensions, ISAPI Filters.
  • 🔹 Порты 80 (HTTP) и 443 (HTTPS) не заблокированы фаерволом.
💡

Если вы обновляли 1С с 8.3.6 до 8.3.20+, обязательно переустановите ISAPI DLL — старые версии модулей могут не поддерживать новые функции платформы.

Пошаговая инструкция: как включить ISAPI DLL для 1С

Процесс настройки состоит из трёх этапов: установка файлов, регистрация в IIS и проверка работоспособности. Рассмотрим каждый шаг подробно.

1. Копирование файлов ISAPI DLL

Файлы wsap32.dll и wsap64.dll находятся в дистрибутиве 1С (папка \bin\). Скопируйте нужную версию (в зависимости от разрядности IIS) в отдельную папку на сервере, например:

C:\inetpub\1C_ISAPI\

Важно: путь не должен содержать кириллических символов или пробелов!

2. Регистрация ISAPI в IIS

Откройте Диспетчер IIS и выполните следующие действия:

  1. Выберите сайт, для которого настраиваете 1С (или создайте новый).
  2. Перейдите в раздел Обработчики ISAPI и CGI.
  3. Нажмите Добавить... в правой панели.
  4. Укажите путь к скопированному файлу (например, C:\inetpub\1C_ISAPI\wsap64.dll).
  5. В поле Имя введите 1C_WSAP.
  6. В Запросы укажите * (все запросы).
  7. Отметьте галочку Вызывать только для указанных глаголов и добавьте GET, POST, HEAD.

3. Настройка фильтра ISAPI

В том же Диспетчере IIS перейдите в раздел Фильтры ISAPI и добавьте новый фильтр:

  • 🔹 Имя фильтра: 1C_WSAP
  • 🔹 Исполняемый файл: путь к wsap64.dll

4. Проверка загрузки модуля

После регистрации перезапустите IIS командой:

iisreset /restart

Затем проверьте, загрузился ли модуль:

  1. Откройте Диспетчер задач → вкладка Подробности.
  2. Найдите процесс w3wp.exe (рабочий процесс IIS).
  3. Проверьте, есть ли в списке загруженных модулей wsap64.dll (через Process Explorer или listdlls.exe из Sysinternals).

Убедиться, что файлы wsap32.dll/wsap64.dll скопированы в папку без кириллицы|

Проверить разрядность IIS и соответствие версии DLL|

Зарегистрировать обработчик и фильтр ISAPI в Диспетчере IIS|

Перезапустить IIS командой iisreset /restart|

Проверить загрузку модуля через Process Explorer-->

Типичные ошибки при включении ISAPI DLL и их решения

Даже при корректной настройке вы можете столкнуться с ошибками. Рассмотрим самые распространённые:

1. Ошибка 500 (Internal Server Error)

Причины:

  • 🚨 Несовпадение разрядности IIS и DLL (например, 64-битный IIS + 32-битная DLL).
  • 🚨 Отсутствуют права на папку с 1С у пользователя IIS_IUSRS.
  • 🚨 Устаревшая версия wsap*.dll (не соответствует версии платформы 1С).

Решение:

  • 🔧 Проверьте разрядность через Диспетчер сервера → Сведения.
  • 🔧 Назначьте права на папку C:\Program Files\1cv8\ для группы IIS_IUSRS.
  • 🔧 Обновите файлы ISAPI из последнего дистрибутива 1С.

2. Ошибка 404 при обращении к published-базе

Если после публикации базы в 1С вы получаете 404 Not Found, проверьте:

  • 🔹 Корректность пути к базе в настройках публикации (в Конфигураторе 1С).
  • 🔹 Наличие обработчика ISAPI в настройках сайта IIS.
  • 🔹 Отсутствие конфликтов с другими обработчиками (например, PHP или ASP.NET).

3. ISAPI-фильтр не загружается

Если в Диспетчере IIS фильтр 1C_WSAP отмечен красным крестиком:

  • 🔹 Убедитесь, что файл wsap64.dll не заблокирован антивирусом.
  • 🔹 Проверьте целостность файла (возможно, он повреждён при копировании).
  • 🔹 Запустите командную строку от имени администратора и выполните:
regsvr32 "C:\inetpub\1C_ISAPI\wsap64.dll"
Что делать, если regsvr32 выдаёт ошибку?

Если при регистрации DLL через regsvr32 вы видите сообщение "Модуль загружен, но точка входа DllRegisterServer не найдена", это нормально — ISAPI-расширения 1С не требуют регистрации в реестре. Главное, чтобы файл был доступен для IIS.

Как проверить работоспособность ISAPI DLL

После настройки необходимо убедиться, что модуль работает корректно. Вот несколько способов диагностики:

1. Проверка через браузер

Откройте в браузере адрес:

http://[ваш_сервер]/[имя_публикации_1С]/ws/1cv8.1cws

Если ISAPI DLL работает, вы увидите XML-ответ с описанием веб-сервисов 1С. Если нет — проверьте логи IIS.

2. Анализ логов IIS

Логи находятся в папке:

C:\inetpub\logs\LogFiles\

Ищите записи с кодом 500 или упоминанием wsap64.dll. Типичные ошибки:

  • 📜 ModuleNotFound — файл DLL не найден.
  • 📜 AccessDenied — нет прав на доступ к файлу.
  • 📜 BadImageFormat — несовпадение разрядности.

3. Тестирование через Postman

Отправьте GET-запрос на адрес:

http://[ваш_сервер]/[имя_публикации_1С]/ws/1cv8.1cws?wsdl

Ожидаемый ответ — WSDL-описание веб-сервиса. Если получаете 404 или 500, проверьте:

  • 🔹 Корректность пути публикации в 1С.
  • 🔹 Наличие обработчика ISAPI в настройках сайта.
  • 🔹 Отсутствие блокировки со стороны фаервола.
💡

Если при обращении к /ws/1cv8.1cws вы видите XML с описанием методов — ISAPI DLL работает корректно. Если нет — проблема либо в настройках IIS, либо в правах доступа.

Оптимизация производительности ISAPI DLL

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

1. Настройка пула приложений в IIS

Для сайта с 1С рекомендуется создать отдельный пул приложений со следующими параметрами:

  • 🔹 .NET CLR version: No Managed Code (если не используете ASP.NET).
  • 🔹 Enable 32-Bit Applications: False (если 64-битный IIS).
  • 🔹 Idle Time-out (minutes): 0 (чтобы пул не выгружался).
  • 🔹 Maximum Worker Processes: 1 (для 1С обычно достаточно одного процесса).

2. Кэширование сессий

Если у вас много пользователей, включите кэширование сессий в 1С:

  • 🔹 В Конфигураторе перейдите в Администрирование → Публикация на веб-сервере.
  • 🔹 Отметьте галочку Использовать кэширование сессий.
  • 🔹 Укажите время жизни кэша (например, 30 минут).

3. Ограничение одновременных соединений

В файле web.config (в корне сайта) добавьте ограничение:

<system.webServer>

<security>

<requestFiltering>

<requestLimits maxConcurrentRequests="50" />

</requestFiltering>

</security>

</system.webServer>

Это предотвратит перегрузку сервера при DDoS-атаках или пиковых нагрузках.

💡

Для высоконагруженных систем рассмотрите возможность использования nginx или Apache в качестве фронтенда перед IIS. Это позволит распределять нагрузку и кэшировать статические файлы.

Альтернативы ISAPI DLL для интеграции 1С

Если настройка ISAPI вызывает сложности, рассмотрите альтернативные способы интеграции:

Метод Плюсы Минусы
HTTP-сервисы 1С Встроен в платформу, не требует ISAPI. Меньше возможностей для тонкой настройки.
REST API через расширение Гибкость, поддержка JSON. Требует доработки конфигурации.
OData Стандартизированный протокол, удобно для мобильных приложений. Ограниченная функциональность в сравнении с ISAPI.
Внешние компоненты (например, 1C:Enterprise Development Tools) Расширенные возможности интеграции. Дополнительные затраты на лицензии.

Выбор метода зависит от задач:

  • 🔹 Для простой публикации базы в вебе хватит HTTP-сервисов.
  • 🔹 Для сложной интеграции с внешними системами лучше использовать ISAPI DLL или REST API.
  • 🔹 Для мобильных приложений удобен OData.
Когда стоит отказаться от ISAPI DLL?

Если ваш сервер работает под Linux или вы используете Nginx/Apache без IIS, ISAPI DLL не подойдёт. В этом случае лучше настроить интеграцию через HTTP-сервисы или REST API с использованием mod_proxy или fastcgi.

FAQ: Частые вопросы по ISAPI DLL в 1С

Можно ли использовать ISAPI DLL на 32-битном IIS, если у меня 64-битная Windows?

Да, но для этого нужно включить поддержку 32-битных приложений в пуле IIS. В настройках пула установите Enable 32-Bit Applications = True. Однако лучше перейти на 64-битный IIS — это повысит производительность.

После обновления 1С перестали работать веб-сервисы. Что делать?

Скорее всего, старая версия wsap64.dll не совместима с новой платформой. Скопируйте свежие файлы ISAPI из дистрибутива 1С в папку на сервере и перезапустите IIS. Также проверьте, что в публикации базы указан корректный путь к новой версии DLL.

Как узнать, какая версия ISAPI DLL установлена?

Кликните правой кнопкой по файлу wsap64.dll, выберите Свойства → Подробно. В поле Версия файла будет указана версия (например, 8.3.20.1234). Она должна совпадать с версией платформы 1С.

Можно ли использовать ISAPI DLL с Apache или Nginx?

Нет, ISAPI — это технология исключительно для Microsoft IIS. Для Apache/Nginx нужно настраивать интеграцию через FastCGI, proxy_pass или HTTP-сервисы 1С.

Почему при обращении к веб-сервису 1С возвращается ошибка 401 (Unauthorized)?

Эта ошибка связана с настройками аутентификации в IIS. Проверьте:

  1. Включена ли Анонимная аутентификация для сайта.
  2. Отключена ли Аутентификация Windows (если не используется).
  3. Корректны ли права у пользователя IIS_IUSRS на папку с базой 1С.
💡

Если после всех настроек ISAPI DLL не работает, проверьте логи Windows Event Viewer (раздел Application). Часто там содержатся детальные ошибки, которые не попадают в логи IIS.