Почему не отображаются иконки в мобильном клиенте 1С при использовании IIS и как это исправить?

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

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

Анализ проблемы: разница между веб-клиентом и мобильным клиентом

Прежде чем переходить к техническим манипуляциям, давайте выясним причину такого избирательного поведения системы. Когда мы запускаем 1С в браузере (веб-клиент), обработкой запросов занимается стандартный движок браузера, который умеет эффективно кэшировать и интерпретировать статические ресурсы. Мобильный клиент представляет собой более сложную надстройку. Он взаимодействует с сервером через специфические протоколы и требует от веб-сервера четкого соблюдения правил передачи бинарных данных. Если IIS настроен по умолчанию, он может некорректно интерпретировать запросы мобильного приложения к библиотеке ресурсов, что и приводит к «исчезновению» картинок формата png или jpg.

Решение 1: Настройка сопоставления обработчиков (Handler Mappings)

Рассмотрим основной метод, который помог большинству пользователей решить данную проблему. Суть его заключается в явном указании IIS, как именно нужно обрабатывать запросы, поступающие к расширению wsisapi.dll. Проанализируем этот процесс по шагам:

  1. Запустим консоль управления IIS (Internet Information Services Manager).
  2. В дереве подключений слева выберем наш сервер, затем перейдем в раздел «Сайты» и выберем конкретное опубликованное приложение (базу 1С).
  3. В центральной части окна найдем и откроем раздел «Сопоставления обработчиков» (Handler Mappings).
  4. В открывшемся списке найдем строку, связанную с ISAPI-dll. Обычно она уже существует, но нам необходимо добавить специфическое правило.
  5. В правой панели действий выберем пункт «Добавить сопоставление сценария» (Add Script Map).
  6. В появившемся окне заполним следующие параметры:
    • Путь запроса: введем символ звездочки * (это позволит обрабатывать все запросы внутри данной публикации).
    • Исполняемый файл: укажем полный путь к библиотеке wsisapi.dll, которая находится в папке установленной платформы 1С (например, C:\Program Files\1cv8\8.3.XX.XXXX\bin\wsisapi.dll).
    • Имя: зададим произвольное понятное имя, например, 1C-Mobile-Handler.
  7. Нажмем «ОК» и подтвердим разрешение на выполнение этого ISAPI-расширения.

Этот метод позволяет перенаправить обработку всех ресурсов публикации напрямую на модуль 1С, минуя стандартные фильтры IIS, которые могут блокировать специфические пути к иконкам.

Решение 2: Разрешение двойного экранирования (Allow Double Escaping)

Часто иконки в мобильном клиенте не отображаются из-за того, что 1С генерирует ссылки на внутренние ресурсы, содержащие специальные символы или двойное кодирование. Система безопасности IIS по умолчанию считает такие запросы потенциально опасными и блокирует их. Разберем, как изменить это поведение:

  1. В диспетчере IIS выберем наш сайт.
  2. Откроем раздел «Фильтрация запросов» (Request Filtering).
  3. В правой панели выберем «Изменить параметры функции» (Edit Feature Settings).
  4. Установим флаг «Разрешить двойное escape-замена» (Allow double escaping).
  5. Нажмем «ОК» и выполним команду iisreset через командную строку для применения изменений.

Решение 3: Проверка компонента «Статическое содержимое»

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

  1. Перейдем в «Панель управления» -> «Программы и компоненты» -> «Включение или отключение компонентов Windows».
  2. Найдем узел Web Server (IIS) -> World Wide Web Services -> Common HTTP Features.
  3. Убедимся, что пункт «Static Content» (Статическое содержимое) отмечен галочкой. Если нет — установим его и нажмем «Установить».

Решение 4: Настройка MIME-типов

Мобильный клиент 1С крайне чувствителен к заголовкам Content-Type, которые передает сервер. Если для расширений файлов изображений не прописаны корректные MIME-типы, мобильное приложение может проигнорировать полученные данные. Посмотрим на список необходимых типов:

Чтобы проверить их, зайдем в раздел «MIME Types» в настройках сайта в IIS. Если какие-то из этих типов отсутствуют или имеют некорректные значения, их следует отредактировать вручную.

Решение 5: Права доступа к временным папкам и разрядность пула

При работе мобильного клиента 1С активно использует временные файлы на стороне сервера для масштабирования иконок под разрешение экрана мобильного устройства. Проанализируем права доступа:

Учетная запись, от которой запущен Пул приложений (Application Pool) вашей базы, должна иметь права на чтение и запись в папку C:\Windows\Temp. Также важно проверить разрядность. Если вы используете 32-битную версию wsisapi.dll, обязательно выполним следующую настройку:

  1. Откроем «Пулы приложений» в IIS.
  2. Выберем пул, на котором работает база 1С.
  3. Нажмем «Дополнительные параметры».
  4. Установим параметр «Разрешить 32-разрядные приложения» (Enable 32-Bit Applications) в значение True.

Практические советы по диагностике

Если после всех манипуляций иконки так и не появились, рекомендуем использовать метод исключения. Попробуйте временно заменить иконку в конфигурации на стандартную из библиотеки картинок 1С. Если стандартная отображается, а ваша — нет, проверьте формат файла (он должен быть строго PNG или JPG без специфических профилей цвета CMYK). Рассмотрим также использование программ для перехвата трафика, чтобы убедиться, что сервер возвращает код 200 OK при запросе картинки, а не 404 или 500.

Настройка IIS для 1С требует внимания к деталям, но соблюдение вышеописанных шагов гарантирует стабильную работу интерфейса вашего мобильного решения.

← На главную