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

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

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

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

Решение 1: Корректная настройка сопоставления обработчиков в IIS

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

Проблема часто возникает, когда сопоставление обработчика настроено только на уровне конкретного веб-сайта (опубликованной базы), а не на уровне всего сервера. Хотя это и должно работать через наследование, практика показывает, что явная настройка на уровне сервера решает проблему.

Рассмотрим по шагам, как проверить и настроить сопоставление обработчиков:

  1. Откройте «Диспетчер служб IIS» (IIS Manager). Его можно найти через меню «Пуск» или выполнив команду inetmgr.
  2. В левой панели «Подключения» выберите самый верхний узел — уровень сервера (имя вашего сервера). Это ключевой момент. Не выбирайте конкретный сайт или базу.
  3. В центральной панели найдите и откройте раздел «Сопоставления обработчиков» (Handler Mappings).
  4. В правой панели «Действия» нажмите «Добавить сопоставление сценария...» (Add Script Map...).
  5. В открывшемся окне заполните поля:
    • Путь запроса (Request path): * (звездочка). Это очень важно, так как указывает IIS передавать обработчику все запросы, а не только запросы с определенным расширением.
    • Исполняемый файл (Executable): Укажите полный путь к файлу wsisapi.dll для установленной платформы 1С. Например: C:\Program Files\1cv8\8.3.25.1286\bin\wsisapi.dll. Путь зависит от версии платформы и каталога установки.
    • Имя (Name): Задайте понятное имя, например, 1C_Enterprise_8.3_x64.
  6. Нажмите «OK». Система может спросить, разрешить ли это расширение ISAPI. Нажмите «Да».

После выполнения этих действий сопоставление будет создано на уровне всего сервера и будет наследоваться всеми дочерними сайтами. Перезапустите веб-сервер (можно перезапустить пул приложений или выполнить команду iisreset в командной строке от имени администратора) и проверьте подключение тонким клиентом x64. С большой вероятностью, желтые круги исчезнут, и появятся нормальные иконки.

Решение 2: Проверка разрядности компонентов

Симптом «x32-клиент работает, а x64-клиент — нет» напрямую указывает на возможные проблемы с рассогласованием разрядности компонентов. Для корректной работы вся цепочка должна быть одной разрядности.

Проанализируем ситуацию: для обслуживания публикации 1С используется пул приложений IIS (Application Pool). У каждого пула есть настройка, разрешающая или запрещающая запуск 32-разрядных приложений. Если у вас установлена 64-разрядная платформа 1С и используется 64-разрядный модуль wsisapi.dll, то пул приложений не должен работать в 32-битном режиме.

Как проверить и настроить разрядность пула приложений:

  1. В «Диспетчере служб IIS» в левой панели раскройте узел сервера и выберите «Пулы приложений» (Application Pools).
  2. Найдите в списке пул, который используется для вашей опубликованной базы 1С. Если вы не создавали отдельный, то, скорее всего, это DefaultAppPool.
  3. Щелкните по нему правой кнопкой мыши и выберите «Дополнительные параметры...» (Advanced Settings...).
  4. В открывшемся окне найдите параметр «Разрешены 32-разрядные приложения» (Enable 32-Bit Applications).
  5. Для 64-разрядной платформы 1С его значение должно быть установлено в False.
  6. Нажмите «OK» для сохранения изменений и перезапустите пул приложений (правой кнопкой мыши -> «Перезапустить»).

Если этот параметр стоял в True, IIS пытался запустить 64-разрядную библиотеку wsisapi.dll in 32-разрядном рабочем процессе, что приводило к ошибкам. Исправление этого параметра часто решает проблему с работой именно 64-разрядного клиента.

Решение 3: Проверка прав доступа для пула приложений

Еще одна распространенная причина — недостаток прав доступа у учетной записи, от имени которой работает пул приложений. По умолчанию это виртуальная учетная запись, входящая в группу IIS_IUSRS.

Этой группе необходимо предоставить следующие права:

Для предоставления прав щелкните правой кнопкой мыши по нужной папке, выберите «Свойства» -> вкладка «Безопасность», нажмите «Изменить», затем «Добавить», введите имя группы IIS_IUSRS и установите необходимые флажки разрешений.

Решение 4: Проверка установленных компонентов IIS

Для работы ISAPI-расширений, к которым относится wsisapi.dll, в IIS должны быть установлены соответствующие компоненты. Это особенно важно не только для графики, но и если вами планируется быстрая организация HTTP-сервиса или выполняется настройка Swagger в 1С для интеграции с другими системами — для отладки таких соединений пригодится инструмент логирования и анализа HTTP-запросов для 1С.

Как проверить наличие компонентов:

  1. Откройте «Панель управления» -> «Программы и компоненты» -> «Включение или отключение компонентов Windows».
  2. В открывшемся дереве найдите «Службы IIS» (Internet Information Services).
  3. Раскройте узел «Службы IIS» -> «Службы Интернета» (World Wide Web Services) -> «Компоненты разработки приложений» (Application Development Features).
  4. Убедитесь, что установлены флажки для «Расширения ISAPI» (ISAPI Extensions) и «Фильтры ISAPI» (ISAPI Filters).
  5. Если они не установлены, отметьте их и нажмите «OK», чтобы Windows установила недостающие компоненты.

После установки компонентов может потребоваться перезагрузка сервера или как минимум перезапуск служб IIS.

Подводя итог, можно сказать, что проблема с желтыми кругами вместо иконок в 64-разрядном тонком клиенте 1С является исключительно инфраструктурной и решается правильной настройкой веб-сервера IIS. Последовательная проверка сопоставления обработчиков, разрядности пула приложений и прав доступа позволит быстро найти и устранить причину сбоя.

← На главную