Публикация баз данных 1С:Предприятия на веб-сервере — это стандартный и крайне удобный способ предоставить пользователям доступ к информационной базе из любой точки мира. Однако на практике администраторы часто сталкиваются со следующей проблемой: на самом сервере в веб-браузере база открывается без проблем, а у удаленных пользователей процесс зависает на этапе появления стартовой заставки «1С:Предприятие» или вовсе отображается пустой экран. Рассмотрим подробно, почему так происходит, как решить эту проблему с помощью перехода на 32-битный модуль расширения, а также разберем глубокие настройки 64-битного окружения IIS, нюансы лицензирования и альтернативные варианты публикации.
Опытным путем установлено, что 64-разрядные модули расширения веб-сервера 1С (в частности, библиотека wsisapi.dll) в связке с IIS на операционных системах семейства Windows Server могут вести себя нестабильно при обработке внешних запросов. В то же время локальные запросы через localhost на самом сервере проходят успешно.
Самым простым и быстрым решением, которое гарантированно устраняет зависание у пользователей, является переход на 32-разрядную версию модуля расширения веб-сервера 1С и настройка соответствующего пула приложений в диспетчере IIS. Разберем этот процесс по шагам.
DefaultAppPool или выделенный пул, созданный специально для 1С). Нажмем на него правой кнопкой мыши и выберем пункт «Дополнительные параметры» (Advanced Settings). Найдем параметр «Разрешить 32-разрядные приложения» (Enable 32-Bit Applications) и установим его значение в True.C:\Program Files (x86)\1cv8\.... Переопубликуем базу, нажав кнопку «Опубликовать», и перезапустим службу IIS.После выполнения этих действий веб-клиент начнет стабильно запускаться как на самом сервере, так и на компьютерах конечных пользователей независимо от разрядности их операционных систем.
Иногда использование 32-разрядного пула приложений нежелательно (например, из-за ограничений по оперативной памяти при большом количестве одновременно работающих пользователей). Если вам принципиально важно заставить работать именно 64-битный модуль расширения 1С, проанализируем неочевидные системные параметры IIS, которые вызывают зависание на заставке.
Выясним ключевые причины, по которым 64-битный процесс IIS w3wp.exe блокирует загрузку веб-клиента для внешних пользователей:
webclient.js). По умолчанию в IIS включено динамическое и статическое сжатие содержимого. При передаче на удаленные ПК через сеть IIS пытается «на лету» сжать эти файлы. Из-за конфликтов в 64-битных библиотеках пакеты могут доходить до пользователя в поврежденном виде. Браузер получает «битый» код JavaScript, выполнение скриптов останавливается, и пользователь видит вечную заставку. Решение: В диспетчере IIS выберите вашу публикацию, откройте раздел «Сжатие» (Compression) и отключите как статическое, так и динамическое сжатие контента.Load User Profile. По умолчанию он имеет значение True. При работе под системной учетной записью пула (например, ApplicationPoolIdentity) процесс веб-сервера при внешних сетевых запросах может зависать, бесконечно пытаясь прочитать или создать профиль пользователя Windows. Измените значение этого параметра на False.IUSR и группы IIS_IUSRS есть полные права (как минимум на чтение и выполнение) на физическую папку, в которую была произведена публикация базы 1С (по умолчанию это C:\inetpub\wwwroot\ИмяБазы), а также на каталог с установленной платформой 1С.Очень часто бесконечное зависание заставки «1С:Предприятие» у удаленных пользователей происходит на этапе получения программной или аппаратной лицензии. Веб-сервер выступает посредником, и если механизм раздачи лицензий настроен некорректно, сессия «засыпает» без вывода явного сообщения об ошибке.
Проанализируем работу системы защиты в данном режиме:
Пользователь, открывая базу через браузер, не может использовать свой локальный USB-ключ или локальную программную лицензию, установленную на его персональном компьютере. Лицензию ему должен выдать либо сам веб-сервер, либо сервер приложений 1С.
Чтобы исключить проблемы с лицензированием, выполните следующие настройки:
C:\ProgramData\1C\licenses).nethasp.ini на сервере и явно укажите IP-адреса менеджеров лицензий. Бесконечный широковещательный поиск ключей по всей локальной сети при каждом веб-запросе гарантированно приводит к временным зависаниям веб-клиента.Если борьба с настройками IIS затянулась, имеет смысл рассмотреть альтернативный и очень популярный вариант — использование веб-сервера Apache (httpd). Программный продукт Apache отличается простотой настройки конфигурационных файлов и высокой стабильностью работы с 64-битными модулями 1С.
Разберем экспресс-метод публикации на Apache по шагам:
C:\Apache24\.
C:\Apache24\bin\httpd.exe -k install
httpd.exe -k start.C:\Apache24\conf\httpd.conf) и нажмите кнопку «Опубликовать».Apache самостоятельно пропишет все необходимые директивы загрузки модулей 1С. Данный веб-сервер, как показывает практика многих системных администраторов, работает «из коробки» и значительно реже вызывает проблемы с зависанием сессий у удаленных пользователей.
В процессе обсуждения публикации баз часто возникает вопрос: зачем использовать тонкий клиент 1С, если можно просто открыть базу в обычном браузере (Google Chrome, Mozilla Firefox, Яндекс.Браузер)? Выясним практические преимущества запуска базы через Тонкий клиент, подключенный по HTTP-ссылке веб-сервера:
1cv8c.exe. Он использует графические ресурсы операционной системы компьютера пользователя для отрисовки окон и таблиц. Браузер же вынужден интерпретировать сложнейший JavaScript-код веб-клиента, что создает колоссальную нагрузку на процессор и оперативную память клиентского ПК.Таким образом, для редкого или мобильного доступа сотрудников (например, из дома или в командировках) отлично подойдет веб-клиент в браузере. Для постоянной же ежедневной работы операторов, бухгалтеров и кассиров настоятельно рекомендуется использовать Тонкий клиент, подключенный по HTTP-адресу опубликованной базы.