При обновлении платформы 1С:Предприятие системные администраторы часто сталкиваются с ситуацией: новый релиз платформы установлен на сервере и на рабочих станциях пользователей, в свойствах базы в окне запуска указана новая версия, однако тонкий клиент при подключении через веб-сервер (Apache или IIS) упорно продолжает открываться на старой версии или выдает ошибку о несоответствии версий клиента и сервера. Разберем детально, почему так происходит, как устроен механизм согласования версий при работе через веб и как корректно перевести публикацию на актуальный релиз.
Проанализируем архитектуру запуска клиентского приложения через веб-сервер. В отличие от прямого файлового доступа или стандартного клиент-серверного режима через кластер 1С, при веб-подключении действуют особые правила:
1cestart.exe и выбирает информационную базу с типом подключения «Веб-сервер».wsap22.dll или wsap24.dll для Apache), возвращает клиенту точный номер версии платформы, на которой работает сам модуль.1cestart.exe игнорирует локально заданную строку версии в свойствах базы и выполняет запуск того релиза тонкого клиента, который затребовал веб-сервер.Таким образом, если на веб-сервере остался загружен модуль старой версии платформы, все пользователи при подключении через веб будут принудительно запускать старый релиз, независимо от локальных настроек в окне запуска 1С.
Самый простой, быстрый и безопасный способ переключить веб-сервер на новую версию платформы — выполнить повторную публикацию базы данных непосредственно из Конфигуратора нужного релиза. Рассмотрим пошаговый порядок действий:
Program Files.Если доступ в Конфигуратор ограничен или публикация настраивается вручную на выделенном веб-сервере, выполним ручное обновление директивы загрузки модуля расширения 1С. Разберем этот процесс по шагам:
C:/Program Files/Apache Software Foundation/Apache2.2/conf/ или C:/Program Files (x86)/Apache Software Foundation/Apache2.2/conf/).httpd.conf и открываем его в текстовом редакторе с правами администратора.LoadModule. Она выглядит следующим образом:
LoadModule _1cws_module "C:/Program Files (x86)/1cv8/8.3.7.1790/bin/wsap22.dll"
LoadModule _1cws_module "C:/Program Files (x86)/1cv8/8.3.10.2588/bin/wsap22.dll"
httpd.conf.services.msc), находим службу Apache и выполняем ее Перезапуск (Restart). Без перезапуска службы веб-сервер продолжит удерживать в оперативной памяти старую DLL-библиотеку.Рассмотрим дополнительные факторы, которые могут повлиять на корректность перехода на новую версию платформы при веб-публикации:
Program Files (x86)/1cv8/.... Если Apache 64-разрядный (x64), подключаемая библиотека должна браться из каталога Program Files/1cv8/... (64-разрядного клиента 1С). При несовпадении разрядности служба Apache завершится с критической ошибкой при запуске.httpd.conf. Если требуется одновременная работа баз на разных версиях 1С, потребуется настроить отдельные службы Apache на разных сетевых портах.default.vrd можно настроить тег DistributiveLocation, указав путь к сетевому каталогу или веб-ресурсу с инсталлятором тонкого клиента. В таком случае тонкий клиент сам предложит скачать и установить необходимую версию при первом обращении к базе.1cestart.cfg (в каталогах %APPDATA%\1C\1CEStart и %ALLUSERSPROFILE%\1C\1CEStart), чтобы исключить жесткую фиксацию запуска через параметр DefaultVersion.Выполнив перепубликацию базы данных из Конфигуратора нужного релиза или скорректировав директиву LoadModule с последующим перезапуском службы веб-сервера, мы полностью решаем проблему автоматического выбора версии тонкого клиента при работе через веб.