При развертывании мобильных решений на платформе 1С:Предприятие 8.3 специалисты часто сталкиваются с загадочным поведением интерфейса: в обычном веб-клиенте через браузер все графические элементы отображаются корректно, однако в мобильном клиенте вместо иконок кнопок и декоративных изображений отображается пустота. Особенно остро эта проблема проявляется при использовании веб-сервера Internet Information Services (IIS), в то время как на Apache та же самая конфигурация работает безупречно. В этой статье мы подробно разберем, почему это происходит, и проанализируем комплекс мер по настройке серверной среды для восстановления визуального контента.
Прежде чем переходить к техническим манипуляциям, давайте выясним причину такого избирательного поведения системы. Когда мы запускаем 1С в браузере (веб-клиент), обработкой запросов занимается стандартный движок браузера, который умеет эффективно кэшировать и интерпретировать статические ресурсы. Мобильный клиент представляет собой более сложную надстройку. Он взаимодействует с сервером через специфические протоколы и требует от веб-сервера четкого соблюдения правил передачи бинарных данных. Если IIS настроен по умолчанию, он может некорректно интерпретировать запросы мобильного приложения к библиотеке ресурсов, что и приводит к «исчезновению» картинок формата png или jpg.
Рассмотрим основной метод, который помог большинству пользователей решить данную проблему. Суть его заключается в явном указании IIS, как именно нужно обрабатывать запросы, поступающие к расширению wsisapi.dll. Проанализируем этот процесс по шагам:
* (это позволит обрабатывать все запросы внутри данной публикации).wsisapi.dll, которая находится в папке установленной платформы 1С (например, C:\Program Files\1cv8\8.3.XX.XXXX\bin\wsisapi.dll).1C-Mobile-Handler.Этот метод позволяет перенаправить обработку всех ресурсов публикации напрямую на модуль 1С, минуя стандартные фильтры IIS, которые могут блокировать специфические пути к иконкам.
Часто иконки в мобильном клиенте не отображаются из-за того, что 1С генерирует ссылки на внутренние ресурсы, содержащие специальные символы или двойное кодирование. Система безопасности IIS по умолчанию считает такие запросы потенциально опасными и блокирует их. Разберем, как изменить это поведение:
iisreset через командную строку для применения изменений.Выясним еще одну возможную причину: если в операционной системе Windows Server не установлен компонент обработки статического содержимого, IIS просто не сможет отдать файлы картинок клиенту. Проанализируем ситуацию в настройках сервера:
Мобильный клиент 1С крайне чувствителен к заголовкам Content-Type, которые передает сервер. Если для расширений файлов изображений не прописаны корректные MIME-типы, мобильное приложение может проигнорировать полученные данные. Посмотрим на список необходимых типов:
.png — image/png.jpg или .jpeg — image/jpeg.svg — image/svg+xmlЧтобы проверить их, зайдем в раздел «MIME Types» в настройках сайта в IIS. Если какие-то из этих типов отсутствуют или имеют некорректные значения, их следует отредактировать вручную.
При работе мобильного клиента 1С активно использует временные файлы на стороне сервера для масштабирования иконок под разрешение экрана мобильного устройства. Проанализируем права доступа:
Учетная запись, от которой запущен Пул приложений (Application Pool) вашей базы, должна иметь права на чтение и запись в папку C:\Windows\Temp. Также важно проверить разрядность. Если вы используете 32-битную версию wsisapi.dll, обязательно выполним следующую настройку:
True.Если после всех манипуляций иконки так и не появились, рекомендуем использовать метод исключения. Попробуйте временно заменить иконку в конфигурации на стандартную из библиотеки картинок 1С. Если стандартная отображается, а ваша — нет, проверьте формат файла (он должен быть строго PNG или JPG без специфических профилей цвета CMYK). Рассмотрим также использование программ для перехвата трафика, чтобы убедиться, что сервер возвращает код 200 OK при запросе картинки, а не 404 или 500.
Настройка IIS для 1С требует внимания к деталям, но соблюдение вышеописанных шагов гарантирует стабильную работу интерфейса вашего мобильного решения.