При обновлении технологической платформы 1С:Предприятие (например, на версию 8.3.17.1496 и выше) системные администраторы часто сталкиваются с неприятной ситуацией: при попытке открыть оснастку «Администрирование серверов 1С:Предприятия» система выдает ошибку, сообщающую, что различается версия клиента и сервера. Это происходит даже в тех случаях, когда обновление, казалось бы, прошло успешно и все компоненты были установлены. Давайте подробно разберем, почему возникает эта проблема и как ее решить несколькими способами.
Основная причина кроется в механизме работы консоли администрирования Windows (MMC). Консоль 1С — это не самостоятельная программа, а COM-компонент, который регистрируется в операционной системе. Когда вы запускаете ярлык администрирования, Windows обращается к реестру, чтобы найти путь к библиотеке radmin.dll. Если в реестре осталась ссылка на библиотеку от старой версии платформы или новая библиотека не была зарегистрирована вовсе, возникает конфликт версий.
Рассмотрим по шагам, как исправить эту ситуацию, начиная с самых простых и эффективных методов.
Прежде всего, нам необходимо убедиться, что компонент «Администрирование сервера 1С:Предприятие» физически присутствует на компьютере. Иногда при обновлении через исполняемый файл или пакетную установку этот флаг может быть пропущен. Проанализируем состав установки:
8.3.17.1496).После этого в папке bin новой платформы должен появиться файл radmin.dll, а в меню «Пуск» — соответствующие ярлыки.
Если компонент установлен, но ошибка сохраняется, значит, регистрация библиотеки в реестре Windows не обновилась. В предыдущих версиях 1С для этих целей служил файл RegMSC.cmd, но в новых релизах он может отсутствовать. Мы можем выполнить регистрацию вручную. Разберем, как это сделать правильно.
Нам необходимо запустить командную строку от имени Администратора и выполнить регистрацию через утилиту regsvr32. Для удобства мы можем создать собственный файл регистрации в папке с платформой.
Пример кода для создания файла RegMSC.cmd (создайте текстовый файл, вставьте код и сохраните с расширением .cmd):
@echo off
cd /d "%~dp0"
regsvr32 /s radmin.dll
echo Библиотека radmin.dll успешно зарегистрирована!
pause
Рассмотрим подробнее, что делает этот код: команда cd /d "%~dp0" переводит контекст командной строки в папку, где лежит сам файл, а regsvr32 /s radmin.dll производит «тихую» регистрацию библиотеки в системе. После запуска этого файла от имени администратора связь между консолью MMC и нужной версией платформы будет восстановлена.
Часто путаница возникает из-за наличия на сервере одновременно 32-битной и 64-битной версий платформы. Если вы установили 64-битный сервер, библиотека radmin.dll будет находиться по пути: C:\Program Files\1cv8\номер_версии\bin. Для 32-битной версии путь будет: C:\Program Files (x86)\1cv8\номер_версии\bin.
Если вы запускаете консоль MMC, она может по умолчанию пытаться загрузить 64-битную оснастку. Если регистрация прошла неудачно, попробуйте принудительно запустить консоль в 32-битном режиме. Для этого нажмите Win + R и введите:
mmc /32
Затем в меню «Файл» выберите «Добавить или удалить оснастку», найдите «Администрирование серверов 1С:Предприятия» и добавьте ее заново. Проверьте, исчезла ли ошибка.
Бывают случаи, когда даже после регистрации новой версии Windows «помнит» путь к старой. Проанализируем ситуацию с реестром. Нам необходимо проверить ветку HKEY_CLASSES_ROOT\CLSID и выполнить поиск по значению radmin.dll. Все найденные пути должны вести к актуальной версии платформы. Внимание: ручное редактирование реестра требует осторожности и предварительного создания резервной копии. Для быстрой проверки версий установленных служб и зарегистрированных библиотек можно использовать обработку для выявления конфликтов платформ 1С и COM-соединений.
Также полезно обновить файл настроек самой консоли. Файлы с расширением .msc (например, 1CV8 Servers.msc) могут хранить в себе информацию о версии. Рекомендуется:
1CV8 Servers.msc в папке bin актуальной платформы.Если проблемы с регистрацией COM-компонентов и оснасткой MMC возникают регулярно, рассмотрим более современный способ управления сервером 1С — через сервер администрирования ras.exe и утилиту командной строки rac.exe.
Преимущество этого метода заключается в том, что он не зависит от регистрации DLL в операционной системе. Вам необходимо запустить службу ras (Remote Administration Server) на сервере:
ras cluster --daemon
После этого вы сможете управлять сервером как через командную строку, так и через сторонние графические интерфейсы или даже стандартную консоль, если настроите ее на подключение через сетевой адрес сервера администрирования. Это полностью исключает ошибки «различия версий клиента и сервера», так как протокол взаимодействия между rac и ras более универсален.
Подводя итог, можно сказать, что решение проблемы чаще всего сводится к правильной регистрации radmin.dll из папки bin именно той версии платформы, которая является основной. Если вы столкнулись с отсутствием файла RegMSC.cmd, просто используйте команду regsvr32, как мы разобрали выше. Всегда запускайте эти действия с правами администратора, чтобы изменения в реестре были успешно применены.