При работе с веб-сервисами 1С, опубликованными на веб-сервере IIS, рано или поздно возникает необходимость обновить версию платформы 1С. Однако это обновление не всегда проходит гладко: после установки новой версии платформы ранее опубликованные базы могут перестать функционировать. В этой статье мы подробно рассмотрим, как решить данную проблему, восстановить работоспособность веб-сервисов и обеспечим корректное взаимодействие 1С с IIS.
Проблема часто возникает, когда пути к системным библиотекам 1С, используемым веб-сервером (например, wsisapi.dll), остаются связанными со старой версией платформы. IIS по-прежнему пытается использовать устаревшие файлы, в то время как новая платформа ожидает обращения к своим компонентам. Давайте выясним, как исправить эту ситуацию и избежать подобных проблем в будущем.
Самым быстрым и надежным способом решения проблемы с неработающими веб-сервисами после обновления платформы 1С является перепубликация всех информационных баз через конфигуратор. Этот метод гарантирует, что IIS будет использовать актуальные пути к файлам новой версии платформы.
Резервное копирование: Прежде чем приступать к любым изменениям, мы настоятельно рекомендуем выполнить полное резервное копирование всех информационных баз и конфигураций веб-сервера. Это позволит вам восстановить работоспособность системы в случае непредвиденных проблем.
Удаление старой платформы (рекомендуется): Для обеспечения максимально чистой установки новой версии платформы, мы советуем удалить старую версию платформы 1С с сервера. Это поможет избежать конфликтов файлов и неверных путей.
Установка новой платформы: Установите новую версию платформы 1С на сервер, где расположен веб-сервер IIS. Убедитесь, что все необходимые компоненты платформы установлены корректно.
Перезагрузка сервера (после удаления): После удаления старой платформы и до установки новой, а также после установки новой платформы, мы рекомендуем выполнить перезагрузку сервера. Это поможет очистить кэш системы и гарантировать применение всех изменений.
Перепубликация баз через конфигуратор:
Для каждой информационной базы, которая была ранее опубликована на IIS, выполним следующие шаги:
Запустите Конфигуратор для нужной информационной базы.
Перейдите в меню Администрирование -> Публикация на веб-сервере...
В открывшемся окне публикации убедитесь, что выбраны корректные настройки (имя публикации, каталог публикации, и т.д.). Даже если ничего не менялось, само действие перепубликации заставит 1С обновить конфигурационные файлы на веб-сервере.
Нажмите кнопку Опубликовать.
Подтвердите перезапись существующих файлов, если это потребуется.
Повторите этот процесс для всех информационных баз.
Перезапуск IIS: После перепубликации всех баз мы должны перезапустить веб-сервер IIS. Для этого:
Откройте Диспетчер служб IIS.
В разделе Действия (обычно справа) выберите Перезапустить для всего сервера или для соответствующего пула приложений, в котором опубликованы ваши базы.
Этот шаг необходим, чтобы IIS загрузил обновленные конфигурационные файлы и пути к библиотекам.
После выполнения этих шагов веб-сервисы и доступ к базам 1С через веб-клиент должны быть восстановлены.
Перепубликация решает основную проблему, но мы также рассмотрим другие важные аспекты и возможные нюансы, которые могут возникнуть или которые стоит учитывать при обновлении платформы.
wsisapi.dll и его рольКлючевую роль в работе веб-сервисов 1С под IIS играет файл wsisapi.dll (для Apache это wsap22.dll или wsap24.dll). Этот файл является ISAPI-расширением, которое обрабатывает запросы к 1С на веб-сервере. При обновлении платформы путь к этому файлу может измениться (например, с C:\Program Files (x86)\1cv8\8.3.15.xxxx\bin\wsisapi.dll на C:\Program Files (x86)\1cv8\8.3.20.xxxx\bin\wsisapi.dll). Если IIS продолжает использовать старый путь, веб-сервисы перестают работать.
При перепубликации через конфигуратор 1С автоматически обновляет ссылки на актуальный wsisapi.dll в файлах конфигурации веб-сервера (например, web.config) и в настройках IIS. Если по каким-либо причинам перепубликация невозможна или вы предпочитаете ручное управление, вы можете вручную изменить путь к wsisapi.dll в "Сопоставлении обработчиков" (Handler Mappings) для каждой публикации в Диспетчере служб IIS. Однако при этом учтите, что настройки авторизации могут сброситься на значения по умолчанию, и потребуется повторная настройка анонимной авторизации или пользователя, от имени которого работает веб-сервис.
webinst.exeДля регистрации 64-разрядного модуля расширения веб-сервера 1С (если вы используете 64-битную платформу и IIS) мы можем использовать утилиту webinst.exe. Эта утилита находится в каталоге bin установки "1С:Предприятия" соответствующей версии. Она помогает корректно зарегистрировать компоненты 1С для взаимодействия с веб-сервером, однако в большинстве случаев перепубликация через конфигуратор выполняет необходимые действия.
После обновления платформы или при первичной настройке веб-сервисов мы обязательно проверяем "Сопоставление обработчиков" в Диспетчере служб IIS. Убедимся, что для расширений, связанных с 1С (например, *.1cws для веб-сервисов и *.1crs для HTTP-сервисов), заданы правильные сопоставления обработчиков, указывающие на актуальный wsisapi.dll. Также следует убедиться, что для этих обработчиков разрешено выполнение скриптов и приложений. Мы можем проверить или добавить их вручную, если это необходимо:
Откроем Диспетчер служб IIS.
Выберем нужный веб-сайт или приложение 1С.
В средней панели откроем Сопоставления обработчиков.
Проверим наличие записей для *.1cws и *.1crs, которые должны указывать на wsisapi.dll из новой версии платформы (например, C:\Program Files\1cv8\8.3.20.xxxx\bin\wsisapi.dll).
Важно проверить наличие разрешающей записи для "1С Web service" в разделе "Ограничения ISAPI и CGI" в Диспетчере служб IIS на уровне сервера. Если установка выполняется в 64-разрядной среде, но используется 32-разрядный модуль wsisapi.dll (например, если IIS настроен для работы с 32-разрядными пулами приложений), мы должны убедиться, что для соответствующего пула приложений (например, DefaultAppPool) включено разрешение работы 32-разрядных приложений. Это делается в настройках пула приложений -> Дополнительные параметры -> Разрешить 32-разрядные приложения.
Корректные права доступа являются краеугольным камнем стабильной работы веб-сервисов. Мы должны убедиться, что:
Для группы IIS_IUSRS предоставлены права на чтение и выполнение файлов в папке с опубликованной базой 1С (там, где лежит web.config и другие файлы публикации).
Для группы IIS_IUSRS предоставлены полные права на каталог с установленными файлами "1С:Предприятие" (по умолчанию C:\Program Files (x86)\1cv8\ для 32-разрядного модуля и C:\Program Files\1cv8\ для 64-разрядного).
Если информационная база файловая, группе IIS_IUSRS также необходимы полные права на каталог с файлами самой информационной базы (файл 1Cv8.1CD и связанные с ним).
Один из удобных методов обновления платформы для тонкого клиента без необходимости ручного распространения дистрибутивов – это размещение дистрибутива новой версии платформы на веб-сервере в виде ZIP-архива. Этот метод особенно полезен для ПРОФ-версий и позволяет клиентам автоматически получать обновления.
Подготовка дистрибутива:
Мы создадим ZIP-архив с дистрибутивом тонкого клиента новой версии. Этот архив должен содержать все файлы установки тонкого клиента. Разместим его в отдельной папке на веб-сервере (например, C:\inetpub\wwwroot\update). Убедимся, что группа IUSR (или IIS_IUSRS) имеет права на "Чтение и выполнение" для этой папки.
Настройка IIS для дистрибутива:
В консоли Диспетчера служб IIS мы добавим новое приложение для папки с дистрибутивом. Укажем псевдоним (например, 1C_update) и физический путь к папке (например, C:\inetpub\wwwroot\update). Это сделает дистрибутив доступным по URL, например, http://ваш_сервер/1C_update/windows64.zip.
Внутри папки update (или аналогичной, где лежит ZIP-архив) создадим файл web.config со следующим содержимым, чтобы IIS правильно отдавал ZIP-файлы:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".zip" mimeType="application/zip" />
</staticContent>
</system.webServer>
</configuration>
Некоторые источники указывают, что в последних платформах инсталлятор может выкладывать дистрибутивы в C:\Program Files\1cv8\8.3.хх.хххх\bin\distr. Мы можем просто переложить эти дистрибутивы (без перепаковки) в подготовленную папку update.
Настройка сервера 1С:
На сервере 1С:Предприятия мы найдем файл conf.cfg, который обычно расположен в каталоге C:\Program Files\1cv8\conf. Добавим в него строки PublishDistributiveLocationWindows32 и PublishDistributiveLocationWindows64, указав URL-пути к ZIP-архивам с 32-битной и 64-битной версиями тонкого клиента соответственно:
PublishDistributiveLocationWindows32=http://ваш_сервер/1C_update/windows32.zip
PublishDistributiveLocationWindows64=http://ваш_сервер/1C_update/windows64.zip
Конечно, мы заменим ваш_сервер и имена файлов на актуальные. Если у вас только одна архитектура, укажите соответствующую строку.
Настройка клиента 1С:
На клиентских машинах в настройках стартового менеджера 1cestart мы проверим наличие отметки "Устанавливать автоматически новую версию". При таких настройках клиент 1С при запуске обнаружит обновление и предложит автоматически установить новую версию платформы.
Обновление серверной части включает в себя не только установку файлов, но и регистрацию компонентов (таких как COM и консоль администрирования), а также обновление пути к компоненте wsisapi.dll в конфигурационных файлах веб-сервера. Если после обновления платформы на сервере и клиенте отображается старая версия платформы, возможно, не была обновлена служба агента сервера 1С. В таком случае мы должны проверить установку компонента "Сервер 1С:Предприятия 8" и обновить путь к файлу ragent.exe в настройках службы "Агент сервера 1С:Предприятия 8.3" через services.msc (Службы).
Обновление платформы 1С на веб-сервере IIS — это рутинная, но требующая внимания операция. Мы выяснили, что самым эффективным способом восстановления работоспособности веб-сервисов после обновления является перепубликация информационных баз через конфигуратор. Это действие гарантирует, что все пути к необходимым компонентам платформы 1С будут актуализированы на веб-сервере. Кроме того, мы рассмотрели другие важные аспекты, такие как ручная проверка wsisapi.dll, сопоставления обработчиков, права доступа и возможности автоматического обновления тонкого клиента, которые помогут нам обеспечить стабильную и безопасную работу нашей системы 1С.