Почему перестал работать веб-клиент при переходе на новую версию платформы 1С 8.3 и как исправить ошибку 0x8007007f?

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

При обновлении платформы 1С:Предприятие (например, с версии 8.3.10 на 8.3.11 или с 8.3.17 на 8.3.21) системные администраторы часто сталкиваются с ситуацией, когда веб-клиент перестает запускаться. Вместо привычного интерфейса программы сервер IIS возвращает системную ошибку: "HTTP Error 500.0 - Internal Server Error. Module IsapiModule, Error Code 0x8007007f". Рассмотрим подробнее, почему это происходит и как пошагово восстановить работоспособность системы.

Разберем причину возникновения ошибки 0x8007007f

Для начала проанализируем техническую суть кода ошибки. В операционной системе Windows код 0x8007007f расшифровывается как "The specified procedure could not be found" (Указанная процедура не найдена). В контексте работы веб-сервера IIS это означает, что модуль расширения 1С wsisapi.dll пытается вызвать определенную функцию в системных библиотеках или зависимых файлах платформы, но не может её обнаружить.

Это происходит по трем основным причинам:

  1. Отсутствие необходимых системных библиотек Microsoft Visual C++ в ОС.
  2. Конфликт версий платформы 1С внутри одного пула приложений IIS.
  3. Несоответствие разрядности (битности) библиотек и настроек веб-сервера.

Шаг 1. Установка и обновление Microsoft Visual C++ Redistributable

Новые версии платформы 1С (начиная с 8.3.11 и выше) предъявляют повышенные требования к системному окружению, особенно на устаревших операционных системах, таких как Windows Server 2008 R2. Проанализируем ситуацию: платформа начинает использовать новые возможности библиотек C++, которых просто нет в старой системе.

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

  1. Найдем в дистрибутиве платформы 1С папку с дополнительными компонентами или скачаем с официального сайта Microsoft пакет Visual C++ Redistributable 2017 (или более новый 2015-2022).
  2. Установим обе версии пакета — и x86, и x64, независимо от разрядности используемой платформы 1С. Это критически важно для корректной работы зависимостей модуля wsisapi.dll.
  3. Если используется Windows Server 2008 R2 или Windows 7, обязательно убедимся в наличии установленного обновления KB2999226 (Universal C Runtime). Без него библиотеки Visual C++ не смогут инициализироваться, что и приведет к ошибке "процедура не найдена".

Шаг 2. Изоляция баз в разные пулы приложений IIS

Выясним причину, связанную с архитектурой IIS. Веб-сервер не может корректно работать с разными версиями модуля wsisapi.dll в рамках одного рабочего процесса (пула приложений). Если у вас опубликовано несколько баз, и одна работает на 8.3.10, а другая на 8.3.11, возникнет конфликт.

Рассмотрим, как правильно настроить пулы приложений:

  1. Откроем Диспетчер служб IIS.
  2. Создадим для новой версии платформы отдельный пул приложений (например, с именем "1C_Platform_8.3.11").
  3. В дополнительных параметрах пула проверим настройку "Разрешить 32-разрядные приложения" (Enable 32-Bit Applications). Если вы используете 32-битную версию 1С на 64-битной ОС, этот параметр должен быть установлен в True. Если платформа 64-битная — в False.
  4. Перейдем к настройкам конкретной публикации базы (App) и в разделе "Основные настройки" выберем только что созданный пул.

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

Шаг 3. Проверка сопоставления обработчиков и прав доступа

Проанализируем настройки обработчиков. В каждой публикации должен быть четко прописан путь к библиотеке конкретной версии. Проверим файл web.config, который находится в папке с публикацией базы. Он должен выглядеть примерно так:


<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <add name="1C Web-service Extension" 
                 path="*" 
                 verb="*" 
                 modules="IsapiModule" 
                 scriptProcessor="C:\Program Files (x86)\1cv8\8.3.11.2867\bin\wsisapi.dll" 
                 resourceType="Unspecified" />
        </handlers>
    </system.webServer>
</configuration>

Убедимся, что путь в параметре scriptProcessor точно соответствует установленной версии платформы. Также проверим права доступа:

Шаг 4. Настройка ограничений ISAPI и CGI

Посмотрим на настройки уровня сервера в консоли IIS. Даже если в настройках сайта всё указано верно, запуск расширения может блокироваться глобальной политикой безопасности веб-сервера.

  1. Выберем корень сервера в дереве подключений IIS.
  2. Откроем раздел "Ограничения ISAPI и CGI" (ISAPI and CGI Restrictions).
  3. Проверим, есть ли в списке путь к wsisapi.dll новой версии.
  4. Если пути нет — добавим его вручную. Если он есть, но стоит в состоянии "Запрещено", изменим на "Разрешено".

Итоги и рекомендации

Проблема с ошибкой 0x8007007f чаще всего решается установкой актуальных библиотек Visual C++ и правильным разделением пулов приложений. Помните, что современные версии 1С (начиная с 8.3.20) становятся всё более требовательными к новизне операционной системы. Если вы используете Windows Server 2008 R2, настоятельно рекомендуем рассмотреть возможность перехода на более современную ОС или использовать веб-сервер Apache 2.4, который зачастую менее чувствителен к системным конфликтам библиотек в старых версиях Windows.

После выполнения всех настроек обязательно выполните команду iisreset в командной строке от имени администратора, чтобы применить все изменения и очистить кэш рабочих процессов IIS.

← На главную