Как исправить ошибку «HTTP: Conflict by reason: Различаются версии клиента и сервера» в веб-клиенте 1С после обновления платформы?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При администрировании серверов 1С:Предприятие часто возникает ситуация, когда после штатного обновления платформы (например, с версии 8.3.20.xx на 8.3.22.xx) локальные клиенты начинают работать корректно, а при попытке входа через веб-браузер или при обращении к веб-сервисам возникает критическая ошибка. Текст ошибки обычно выглядит так:


HTTP: Conflict by reason: Различаются версии клиента и сервера (8.x.x.xx - 8.x.x.yy),
клиентское приложение: Модуль расширения веб-сервера

Давайте подробно разберем, почему возникает этот конфликт, проанализируем механизм работы связки «Веб-сервер — Платформа 1С» и рассмотрим пошаговые методы устранения этой неисправности для различных веб-серверов (Apache и IIS), а также организацию HTTP-сервисов.

Суть проблемы: почему возникает рассинхронизация?

Чтобы эффективно решить проблему, нам нужно понять её природу. Когда мы устанавливаем новую версию платформы 1С на сервер, старая версия часто остается в системе (в соседней папке). Веб-сервер (будь то Apache или IIS) использует специальные библиотеки (модули расширения) для взаимодействия с ядром 1С.

Ошибка возникает потому, что конфигурационный файл веб-сервера продолжает указывать на библиотеку (DLL или SO файл), лежащую в каталоге старой версии платформы (bin). При этом сама информационная база уже запущена под управлением новой версии агента сервера 1С. В результате веб-клиент (браузер) через старый модуль пытается подключиться к обновленному серверу, что и вызывает конфликт версий.

Рассмотрим несколько способов решения, от ручной правки до автоматизированных средств.

Способ 1. Ручная настройка конфигурации Apache

Если в качестве веб-сервера используется Apache (для установки которого на Windows можно использовать специальный PowerShell скрипт), настройки подключения модулей 1С хранятся в главном конфигурационном файле. Чаще всего это файл httpd.conf.

Давайте выполним следующие действия:

  1. Остановим службу веб-сервера Apache. Это необходимо для того, чтобы файл конфигурации не был заблокирован и изменения вступили в силу корректно.
  2. Найдем файл конфигурации httpd.conf. Обычно он располагается в папке установки Apache, например: C:\Program Files\Apache Software Foundation\Apache2.4\conf\httpd.conf (путь может отличаться в зависимости от версии и ОС).
  3. Откроем файл в текстовом редакторе (желательно с правами администратора).
  4. Используя поиск по тексту, найдем строку, подключающую модуль 1С. Она обычно начинается с директивы LoadModule.

Пример проблемной строки (указывает на старую версию):


LoadModule _1cws_module "C:/Program Files/1cv8/8.3.18.1208/bin/wsap24.dll"

Нам необходимо изменить путь к библиотеке на актуальный каталог новой установленной платформы. Например, если мы обновились до версии 8.3.22.1709, строка должна выглядеть так:


LoadModule _1cws_module "C:/Program Files/1cv8/8.3.22.1709/bin/wsap24.dll"

Важно: Обратите внимание на имя библиотеки. Для Apache 2.2 это будет wsap22.dll, для Apache 2.4 — wsap24.dll. В Linux-системах расширение файла будет .so.

После сохранения файла запустите службу Apache (для Astra Linux существует сценарий автоматизации установки 1С). Если вы используете Linux, команда перезапуска может выглядеть так:


sudo service apache2 restart
// или
/etc/init.d/apache2 restart

Способ 2. Перепубликация через Конфигуратор или утилиту webinst

Более надежный способ, исключающий человеческий фактор при правке текстовых файлов — это повторная публикация базы. При этом 1С сама перезапишет пути к библиотекам в конфигурации веб-сервера.

Вариант А: Через Конфигуратор

Запустим Конфигуратор от имени администратора. Перейдем в меню Администрирование -> Публикация на веб-сервере. В открывшемся окне достаточно просто нажать кнопку «Опубликовать». Система спросит о перезапуске веб-сервера — соглашаемся. Это действие обновит ссылки на модули, используя текущую версию платформы, из которой запущен Конфигуратор.

Вариант Б: Через командную строку (webinst)

Для системных администраторов, предпочитающих автоматизацию, или при работе на серверах без графического интерфейса (Linux), идеально подойдет утилита webinst. Она находится в папке bin установленной платформы.

Разберем пример команды для обновления публикации:


webinst -publish -apache24 -wsdir BaseName -dir "C:\inetpub\wwwroot\BaseName" -connstr "Srvr=ServerName;Ref=BaseName;"

Ключевой момент здесь — запускать эту утилиту нужно именно из папки новой версии платформы. Например:


"C:\Program Files\1cv8\8.3.22.1709\bin\webinst.exe" ...параметры...

Это гарантирует, что в конфиг веб-сервера пропишутся пути именно от версии 8.3.22.1709.

Способ 3. Особенности настройки IIS

Если вы используете Microsoft Internet Information Services (IIS), процесс немного отличается, так как здесь нет единого текстового файла httpd.conf.

Посмотрим, что нужно проверить в консоли управления IIS:

  1. Откроем «Диспетчер служб IIS».
  2. Выберем нужный сайт или приложение, где опубликована база 1С.
  3. Зайдем в раздел «Сопоставления обработчиков» (Handler Mappings).
  4. Найдем обработчик, отвечающий за 1С (обычно он называется 1C Web Service Extension или имеет расширение *.1cws).
  5. Нажмем «Изменить» и проверим путь к исполняемому файлу. Он должен указывать на isapi_1c8.dll в папке актуальной версии платформы.

Также в IIS часто возникает проблема с разрядностью пула приложений. Если вы установили 64-битную версию платформы 1С, убедитесь, что в настройках пула приложений (Application Pool) для вашего сайта параметр «Разрешить 32-разрядные приложения» (Enable 32-bit Applications) установлен в значение False. И наоборот, если платформа 32-битная, а ОС 64-битная, этот параметр должен быть True.

После изменения настроек обязательно выполните перезапуск (Recycle) пула приложений или всего веб-сервера командой iisreset в командной строке.

Способ 4. Проверка файла default.vrd

Иногда проблема кроется не в самом веб-сервере, а в файле публикации конкретной базы — default.vrd. Этот файл находится в каталоге, который вы указывали при публикации базы.

Давайте откроем этот файл в текстовом редакторе и проанализируем его содержимое. Обратим внимание на строку соединения ib="...".


<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
      xmlns:xs="http://www.w3.org/2001/XMLSchema"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      base="/BaseName"
      ib="Srvr="ServerName";Ref="BaseName";">

Если вы переносили базу на другой сервер или меняли параметры кластера, в этом файле могут остаться старые данные. Убедитесь, что параметры подключения соответствуют текущей конфигурации кластера 1С.

В редких случаях в теге <point> могут быть прописаны специфические требования к версии, хотя по умолчанию 1С их не ставит. Убедитесь, что там нет ограничений, привязанных к старому релизу.

Способ 5. Очистка кэша

Даже если на сервере все настроено верно, клиентская часть может «помнить» старые параметры. Рассмотрим, что нужно очистить, если ошибка сохраняется после настройки сервера.

На стороне клиента (браузер):

Обычной очистки истории (Ctrl+F5) часто бывает недостаточно. Современные браузеры активно используют LocalStorage и SessionStorage.

  1. Нажмите F12 в браузере, чтобы открыть инструменты разработчика.
  2. Перейдите на вкладку Application (или «Приложение»).
  3. В разделе Storage (Хранилище) очистите данные для вашего домена (Local Storage, Session Storage, Cookies).

На стороне сервера:

Веб-сервер может кэшировать скомпилированные модули. Рекомендуется остановить веб-сервер и удалить временные файлы пользователя, от имени которого запущена служба веб-сервера. Для IIS это может быть папка C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files (путь зависит от версии .NET).

Резюме

Ошибка «Conflict by reason: Различаются версии клиента и сервера» в 99% случаев означает, что веб-сервер загружает библиотеку расширения (DLL/SO) от старой версии платформы. Чтобы исправить это, выполните следующие шаги:

  1. Убедитесь, что новая платформа установлена корректно.
  2. Переопубликуйте базу через Конфигуратор новой версии или утилиту webinst.
  3. Если автоматическая публикация не помогла, вручную проверьте пути в файле httpd.conf (для Apache) или в сопоставлении обработчиков (для IIS).
  4. Перезапустите службу веб-сервера.
  5. Очистите кэш браузера.

Следуя этим инструкциям, вы сможете быстро восстановить доступ к веб-клиенту после обновления платформы.

← На главную