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