14

Различаются версии клиента и сервера 1С при COM-соединении

На сервере одновременно работали кластеры разных версий платформы. COM-соединение попадало не в тот кластер, и в тексте ошибки были указаны две разные версии.

Проблема

Подробный текст выглядел так:

Несоответствие версий клиента и сервера 1С:Предприятия. Различаются версии клиента и сервера, клиентское приложение: COM-соединение

Как я проверил

Я сравнил версию зарегистрированного comcntr.dll, версию целевого кластера и строку подключения. Имя сервера было указано без порта, поэтому COM-коннектор выбирал кластер по умолчанию, работавший на другой версии.

Решение

  1. Уточнил порт кластера, в котором зарегистрирована нужная база.
  2. Добавил порт менеджера нужного кластера к имени сервера: Srvr="SERVER1C:1641";Ref="BASE";. В моём примере 1641 — порт второго кластера; у основного кластера по умолчанию используется 1541.
  3. Перерегистрировал COM-компоненту нужной версии: regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\comcntr.dll". Идентификатор V83.COMConnector один на машину, поэтому действует последняя регистрация.
  4. Перезапустил использующее COM приложение и повторил соединение.

После указания порта подключение пошло в нужный кластер и ошибка исчезла. Если кластер один, порт добавлять не нужно: проблема в том, что версии клиента и сервера действительно разные. Тогда я устанавливаю одинаковые версии либо заново регистрирую comcntr.dll нужной сборки.

Тот же текст ошибки при работе через веб-сервер разобран отдельно в статье «Различаются версии клиента и сервера 1С при открытии OData».

Раздел:

Получилось или остались вопросы?

Поделитесь результатом, дополните инструкцию своим опытом или задайте вопрос. Я читаю комментарии и обновляю статьи по реальным случаям.

Напишите комментарий

Опишите проблему и укажите, какое решение вы уже проверили. Адрес электронной почты на сайте не публикуется.