Переход с файлового варианта информационной базы на клиент-серверный (SQL) — это важный этап масштабирования системы. Однако часто системные администраторы сталкиваются с тем, что после переноса данных и изменения строки соединения веб-клиент перестает работать корректно. Тонкий и толстый клиенты подключаются без проблем, но при попытке зайти через браузер пользователь видит лишь бесконечную заставку (сплэш-скрин) 1С, которая замирает еще до появления окна авторизации. Рассмотрим детально, почему это происходит и как реанимировать работу веб-сервера.
Прежде чем приступать к правке конфигов, проанализируем ситуацию. В файловом варианте веб-сервер (IIS или Apache) обращается напрямую к файлам базы данных. В клиент-серверном варианте цепочка усложняется: веб-сервер взаимодействует с расширением (модулем 1С), которое, в свою очередь, должно связаться с кластером серверов 1С:Предприятия. Если на этом пути возникает несоответствие версий, прав доступа или разрядности приложений, процесс «зависает» в ожидании ответа, который никогда не придет.
Многие администраторы пытаются вручную править файл default.vrd, заменяя параметр ib="File=..." на ib="Srvr=...;Ref=...". Хотя это кажется логичным, такой подход часто приводит к ошибкам в структуре XML или несоответствию настроек в файле web.config, который IIS использует для управления запросами. Выясним причину, почему лучше доверить это платформе.
Рассмотрим по шагам процесс перепубликации:
default.vrd и, что более важно, перенастроит web.config под параметры клиент-серверного взаимодействия.UT_SQL.Одной из самых частых причин «мертвого» зависания является конфликт разрядности (32-bit против 64-bit). Если ваша операционная система Windows 64-битная, а модуль расширения веб-сервера 1С установлен 32-битный, IIS не сможет корректно инициализировать библиотеку без специальной настройки. Проанализируем настройки пула приложений:
Application Pools (Пулы приложений).DefaultAppPool, но для 1С рекомендуется создавать отдельный пул).Помните, что разрядность установленного модуля расширения веб-сервера 1С (библиотека wsap22.dll) должна строго соответствовать этой настройке.
Если на сервере установлено несколько версий платформы 1С, IIS может ошибочно использовать библиотеку от старой или неподходящей версии. Выясним, как проверить сопоставление обработчиков.
В диспетчере IIS выберем наш виртуальный каталог (базу) и откроем раздел Handler Mappings (Сопоставления обработчиков). Проверим записи для расширений .1cws и .1crs. Путь к исполняемому файлу должен вести к актуальной папке bin текущей версии платформы, например:
C:\Program Files\1cv8\8.3.22.1750\bin\wsap22.dll
Если пути ведут к старой версии платформы, их необходимо обновить вручную или через повторную публикацию из правильного Конфигуратора.
При переходе на SQL-вариант процесс веб-сервера должен иметь права на сетевое взаимодействие с сервером 1С. По умолчанию пулы IIS работают от имени учетной записи ApplicationPoolIdentity, которая может быть ограничена в правах. Рассмотрим, как изменить владельца процесса:
LocalSystem или на специально созданную доменную учетную запись, под которой работает служба сервера 1С.iisreset в командной строке.Зависание на стартовой картинке часто вызвано тем, что браузер или сервер «запомнили» настройки от файловой версии базы. Разберем, как произвести полную очистку.
На стороне сервера 1С и веб-сервера стоит очистить временные файлы:
C:\Windows\Temp\
C:\Users\[ИмяПользователяСлужбы]\AppData\Local\Temp\
На стороне клиента (в браузере) недостаточно просто нажать F5. Необходимо зайти в настройки истории и полностью удалить кэшированные изображения и файлы за все время. Часто именно старые скрипты, хранящиеся в кэше браузера, не дают корректно отработать скриптам новой серверной публикации.
Если вышеуказанные шаги не помогли, воспользуемся инструментами отладки. Откроем браузер, нажмем F12 и перейдем на вкладку Network (Сеть). После этого обновим страницу с базой 1С. Проанализируем список запросов:
.js или .css, значит, в IIS не настроены MIME-типы или ограничены права на чтение каталога публикации./mngbase/js/... висит в статусе Pending, это подтверждает проблему взаимодействия между IIS и кластером 1С (проблема Identity или разрядности).Таким образом, для лечения «отвалившегося» веб-клиента при переходе на SQL необходимо обеспечить согласованность разрядности пула IIS и установленной платформы, корректно переопубликовать базу через Конфигуратор и убедиться в наличии прав у учетной записи пула приложений на взаимодействие с компонентами 1С.