При публикации файловой или серверной базы 1С на веб-сервере IIS (для удобного доступа к которой может пригодиться лаунчер с проверкой доменной авторизации) можно столкнуться с неприятной ситуацией: при подключении 64-разрядным тонким клиентом стандартные иконки на панели разделов не отображаются, а вместо них мы видим желтые круги. При этом подключение 32-разрядным клиентом к этой же базе проходит успешно, и все файлы графических ресурсов платформы 1С отображаются корректно. Давайте разберемся, почему так происходит и как исправить эту проблему.
Эта ситуация почти всегда указывает на ошибку в конфигурации веб-сервера IIS, из-за которой он не может корректно обработать запросы от клиента на получение графических ресурсов. Проблема может быть в сопоставлении обработчиков, разрядности компонентов или правах доступа.
Это основная причина, которая и привела к решению в исходной ситуации. Веб-сервер должен понимать, что все запросы, приходящие по адресу опубликованной базы, нужно передавать специальному компоненту 1С — ISAPI-расширению wsisapi.dll. Если эта настройка выполнена неверно, то запросы на получение картинок могут не дойти до обработчика 1С и, как следствие, не будут отображены в клиенте.
Проблема часто возникает, когда сопоставление обработчика настроено только на уровне конкретного веб-сайта (опубликованной базы), а не на уровне всего сервера. Хотя это и должно работать через наследование, практика показывает, что явная настройка на уровне сервера решает проблему.
Рассмотрим по шагам, как проверить и настроить сопоставление обработчиков:
inetmgr.* (звездочка). Это очень важно, так как указывает IIS передавать обработчику все запросы, а не только запросы с определенным расширением.wsisapi.dll для установленной платформы 1С. Например: C:\Program Files\1cv8\8.3.25.1286\bin\wsisapi.dll. Путь зависит от версии платформы и каталога установки.1C_Enterprise_8.3_x64.После выполнения этих действий сопоставление будет создано на уровне всего сервера и будет наследоваться всеми дочерними сайтами. Перезапустите веб-сервер (можно перезапустить пул приложений или выполнить команду iisreset в командной строке от имени администратора) и проверьте подключение тонким клиентом x64. С большой вероятностью, желтые круги исчезнут, и появятся нормальные иконки.
Симптом «x32-клиент работает, а x64-клиент — нет» напрямую указывает на возможные проблемы с рассогласованием разрядности компонентов. Для корректной работы вся цепочка должна быть одной разрядности.
Проанализируем ситуацию: для обслуживания публикации 1С используется пул приложений IIS (Application Pool). У каждого пула есть настройка, разрешающая или запрещающая запуск 32-разрядных приложений. Если у вас установлена 64-разрядная платформа 1С и используется 64-разрядный модуль wsisapi.dll, то пул приложений не должен работать в 32-битном режиме.
Как проверить и настроить разрядность пула приложений:
DefaultAppPool.False.Если этот параметр стоял в True, IIS пытался запустить 64-разрядную библиотеку wsisapi.dll in 32-разрядном рабочем процессе, что приводило к ошибкам. Исправление этого параметра часто решает проблему с работой именно 64-разрядного клиента.
Еще одна распространенная причина — недостаток прав доступа у учетной записи, от имени которой работает пул приложений. По умолчанию это виртуальная учетная запись, входящая в группу IIS_IUSRS.
Этой группе необходимо предоставить следующие права:
bin установленной платформы 1С. Например, для папки C:\Program Files\1cv8\8.3.25.1286\bin. Это нужно, чтобы IIS мог запустить файл wsisapi.dll.default.vrd).Для предоставления прав щелкните правой кнопкой мыши по нужной папке, выберите «Свойства» -> вкладка «Безопасность», нажмите «Изменить», затем «Добавить», введите имя группы IIS_IUSRS и установите необходимые флажки разрешений.
Для работы ISAPI-расширений, к которым относится wsisapi.dll, в IIS должны быть установлены соответствующие компоненты. Это особенно важно не только для графики, но и если вами планируется быстрая организация HTTP-сервиса или выполняется настройка Swagger в 1С для интеграции с другими системами — для отладки таких соединений пригодится инструмент логирования и анализа HTTP-запросов для 1С.
Как проверить наличие компонентов:
После установки компонентов может потребоваться перезагрузка сервера или как минимум перезапуск служб IIS.
Подводя итог, можно сказать, что проблема с желтыми кругами вместо иконок в 64-разрядном тонком клиенте 1С является исключительно инфраструктурной и решается правильной настройкой веб-сервера IIS. Последовательная проверка сопоставления обработчиков, разрядности пула приложений и прав доступа позволит быстро найти и устранить причину сбоя.