Где посмотреть, какая платформа стоит на сервере 1С:Предприятия
Содержание
Версию сервера 1С быстрее всего определить по пути к исполняемому файлу службы агента: откройте services.msc, найдите службу «Агент сервера 1С:Предприятия 8.3», и в поле «Исполняемый файл» будет путь вида C:\Program Files\1cv8\8.3.24.1548\bin\ragent.exe. Номер папки — это и есть версия платформы, на которой работает сервер.
Остальные способы нужны, когда доступа к рабочему столу сервера нет, когда на машине установлено несколько версий или когда сервер работает на Linux. Если вы администратор сервера, хватит службы или PowerShell. Если доступ есть только к базе — версию можно получить программно, из самой 1С.
Свойства службы агента в Windows
На сервере может быть установлено пять разных версий платформы, а работает только та, из папки которой запущена служба. Поэтому список установленных программ — плохой ориентир. Смотрите именно на службу.
- Нажмите
Win + R, введитеservices.msc. - Найдите службу с именем «Агент сервера 1С:Предприятия 8.3 (x86-64)». В англоязычной системе имя будет похожим: «1C:Enterprise 8.3 Server Agent (x86-64)».
- Откройте её двойным щелчком.
- На вкладке «Общие» посмотрите поле «Исполняемый файл».
Строка обычно выглядит так:
"C:\Program Files\1cv8\8.3.24.1548\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
Здесь видно сразу несколько полезных вещей:
- 📦
8.3.24.1548— версия платформы сервера; - 🔌
-port 1540— порт агента, к нему подключаются клиенты и консоль; - 🗂️
-regport 1541— порт менеджера кластера; - 📁
-d— каталог служебных файлов кластера (srvinfo).
Если служб агента две и больше, значит на машине работают несколько кластеров разных версий. Они отличаются портами: например, один на 1540, второй на 2540. Клиент попадает на нужный, если в адресе сервера указан порт: srv1c:2541.
Тот же путь виден в диспетчере задач. Вкладка «Подробности» → процесс ragent.exe → правый щелчок → «Открыть расположение файла». Откроется папка bin нужной версии. Процессы rmngr.exe и rphost.exe запускаются из той же папки.
Определение версии сервера через командную строку и PowerShell
Когда серверов несколько или вы подключены по удалённой консоли, удобнее одна команда, чем окна оснастки.
sc qc — быстро и без PowerShell
sc qc "1C:Enterprise 8.3 Server Agent (x86-64)"
В выводе ищите строку BINARY_PATH_NAME — там тот же путь с номером версии. Внутреннее имя службы может отличаться, например у 32-разрядного сервера в нём нет (x86-64). Узнать его можно в свойствах службы, поле «Имя службы».
PowerShell — все агенты сразу
Команда находит все службы, запущенные из ragent.exe, независимо от их имени:
Get-CimInstance Win32_Service |
Where-Object { $_.PathName -like '*ragent.exe*' } |
Select-Object Name, State, PathName
А так можно прочитать версию прямо из свойств файла:
Get-Process ragent | ForEach-Object { $_.Path; $_.MainModule.FileVersionInfo.FileVersion }
Вторая команда показывает только работающие процессы. Если служба остановлена, используйте первую.
Для проверки удалённого сервера оберните первую команду в Invoke-Command -ComputerName srv1c { … }. Нужны права администратора и включённый WinRM.
Реестр и удалённый компьютер
Параметры службы хранятся в реестре, в разделе HKLM\SYSTEM\CurrentControlSet\Services. У службы агента там есть подраздел со значением ImagePath — это тот же путь к ragent.exe. Прочитать его можно без открытия редактора реестра:
reg query "HKLM\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (x86-64)" /v ImagePath
Утилита sc умеет обращаться к другому компьютеру, если у вашей учётной записи есть права администратора на нём:
sc \\srv1c qc "1C:Enterprise 8.3 Server Agent (x86-64)"
Так удобно обойти несколько серверов из одного bat-файла и собрать версии в один текстовый отчёт. Редактировать ImagePath вручную ради смены версии не стоит: для перевода службы на другую версию её регистрируют заново средствами платформы.
Утилита rac
Утилита rac работает не напрямую с агентом, а через сервер администрирования ras. Его нужно запустить той же версии, что и сервер:
"C:\Program Files\1cv8\8.3.24.1548\bin\ras.exe" cluster --port=1545 localhost:1540
После этого в другом окне:
"C:\Program Files\1cv8\8.3.24.1548\bin\rac.exe" localhost:1545 agent version
"C:\Program Files\1cv8\8.3.24.1548\bin\rac.exe" localhost:1545 cluster list
Команда agent version возвращает версию агента. cluster list показывает кластеры, их имена и порты. Если в вашей сборке утилиты какая-то команда не поддерживается, полный список даст rac help agent.
Утилита rac и сервер ras должны быть той же версии, что и кластер. Подключение «чужой» версии обычно заканчивается ошибкой о несовпадении версий. Само сообщение при этом подсказывает, какая версия у сервера.
Консоль администрирования кластера: что она показывает
Консоль кластера — это оснастка MMC на базе библиотеки radmin.dll. Она работает через агент сервера и сама привязана к версии платформы: консоль 8.3.22 не подключится к серверу 8.3.24. Это удобно для диагностики.
Порядок такой:
- Откройте консоль, добавьте центральный сервер по имени и порту агента (по умолчанию 1540).
- Если подключение проходит, версия оснастки совпадает с версией сервера.
- Если появляется ошибка о несоответствии версий, в её тексте указаны обе версии — и ваша, и серверная.
Какая версия оснастки сейчас зарегистрирована, легко понять по последней команде регистрации. Чтобы переключить консоль на нужную версию, зарегистрируйте radmin.dll из папки этой версии. Командную строку запустите от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"
После этого перезапустите консоль. Ярлык «Администрирование серверов 1С Предприятия» в меню «Пуск» ведёт на файл .msc, который подхватывает зарегистрированную библиотеку.
Если вы администрируете кластеры разных версий с одной рабочей станции, держите рядом короткие bat-файлы с regsvr32 под каждую версию. Переключение занимает секунды.
Журналы, дампы и логи установки
Иногда сервер уже упал, и служба не стартует, а версию нужно знать для обращения к разработчику конфигурации или для подбора дистрибутива. Тогда помогают следы, которые оставляет платформа.
Журнал событий Windows
Установщик платформы пишет в журнал «Приложение» события от источника MsiInstaller. Откройте eventvwr.msc → «Журналы Windows» → «Приложение» и отфильтруйте по источнику MsiInstaller. В событиях установки указано имя продукта с версией, например «1С:Предприятие 8 (x86-64) (8.3.24.1548)». Так видна и история: какие версии ставили и удаляли.
Это история установок, а не текущее состояние. Последняя установленная версия не обязательно та, на которой работает служба.
Дампы процессов
Если на сервере включён сбор дампов (через logcfg.xml, элемент dump), в имени файла дампа обычно есть имя процесса и версия, например rphost_8.3.24.1548_…. По дампу видно, на какой версии работал процесс в момент сбоя.
Технологический журнал и каталог srvinfo
Технологический журнал включается файлом logcfg.xml в каталоге conf конкретной версии (…\8.3.24.1548\bin\conf). Если журнал пишется, а в conf других версий настройки нет, это косвенно подтверждает, на какой версии работают процессы. Сами строки журнала номер версии в каждой записи не содержат, поэтому для этой задачи журнал — вспомогательный источник.
Каталог srvinfo хранит реестр кластера и сеансовые данные. Номера версии в его названии нет, поэтому для определения версии он бесполезен. Не удаляйте его содержимое ради «чистоты» — без остановки службы это ломает работу кластера.
Как узнать версию сервера 1С на Linux
На Linux платформа ставится в каталог с номером версии, поэтому способ тот же: найти, откуда запущен ragent.
ps -ef | grep [r]agent
ls /opt/1cv8/x86_64/
Первая команда покажет полный путь, например /opt/1cv8/x86_64/8.3.24.1548/ragent. Вторая — все установленные версии.
Как запущен сервер, зависит от версии платформы:
| Платформа | Как запускается служба | Как проверить |
|---|---|---|
| Новые версии с unit-файлом systemd | srv1cv8-8.3.24.1548@default | systemctl list-units 'srv1cv8*' |
| Старые версии со скриптом init.d | /etc/init.d/srv1cv83 | ps -ef | grep [r]agent |
В systemd версия входит прямо в имя юнита, так что systemctl list-units сразу отвечает на вопрос.
Пакетный менеджер тоже знает версию:
# Debian, Ubuntu, Astra Linux
dpkg -l | grep -i 1c-enterprise
# RHEL-подобные (РЕД ОС, ALT, CentOS)
rpm -qa | grep -i 1c-enterprise
Но, как и в Windows, установленный пакет не означает работающий. Ориентируйтесь на путь процесса.
Проверка версии сервера изнутри базы 1С
Пользователю без доступа к серверу версию можно узнать из самой программы. Есть два пути.
Окно «О программе»
В клиенте 1С откройте меню (кнопка с тремя полосками или значок «?» в правом верхнем углу) → «О программе». В окне указана версия платформы клиента. В клиент-серверном режиме клиент обязан совпадать с сервером, поэтому раз вы вошли в базу, версия сервера та же. Это рабочий способ, но косвенный.
Программно, на стороне сервера
Точный ответ даёт код, выполненный на сервере. Подойдёт внешняя обработка с одной кнопкой:
&НаСервереБезКонтекста
Функция ВерсияНаСервере()
Возврат Новый СистемнаяИнформация().ВерсияПриложения;
КонецФункции
&НаКлиенте
Процедура ПоказатьВерсию(Команда)
Сообщить("Сервер: " + ВерсияНаСервере());
Сообщить("Клиент: " + Новый СистемнаяИнформация().ВерсияПриложения);
КонецПроцедуры
Обработка выводит две строки: версию платформы на сервере и на клиенте. В клиент-серверной базе с тонким клиентом они совпадут. Для диагностики важна первая строка: функция с директивой &НаСервереБезКонтекста выполняется в рабочем процессе rphost, то есть на сервере.
Код не зависит от состава конфигурации и подходит для любой базы. Обработку можно открыть через «Файл → Открыть», если у пользователя есть право на открытие внешних обработок.
services.msc и посмотрите путь к ragent.exe в свойствах службы агента. Если служб несколько — проверьте все.Get-CimInstance Win32_Service через Invoke-Command или sc \\srv1c qc с именем службы.ps -ef | grep [r]agent или systemctl list-units 'srv1cv8*'.СистемнаяИнформация на сервере.Сравнение версий клиента и сервера 1С
В клиент-серверном варианте версия клиента должна совпадать с версией сервера полностью, вплоть до последней цифры сборки. Клиент 8.3.24.1548 не подключится к серверу 8.3.24.1586, хотя оба формально «8.3.24».
Что происходит при несовпадении:
- 🔁 если на компьютере пользователя установлена нужная версия, стартер
1cestart.exeподберёт её сам — при условии, что в настройках базы версия указана как8.3или нужный номер; - ⛔ если нужной версии нет, вход завершится ошибкой о несоответствии версий клиента и сервера;
Где задаётся версия для базы. В окне запуска выделите базу → «Изменить» → пройдите до последней страницы → поле «Версия 1С:Предприятия». Варианты:
| Значение | Что делает стартер | Когда применять |
|---|---|---|
8.3 | Ищет подходящую из установленных | Обычный вариант для большинства баз |
8.3.24.1548 | Запускает строго эту версию | Несколько серверов разных версий |
Перед обновлением платформы на сервере предупредите пользователей. Служба агента перезапускается, все сеансы обрываются. Делайте это вне рабочего времени и только после того, как клиенты новой версии разложены по рабочим местам.
Файловые базы такого жёсткого требования не имеют: их можно открыть любой версией 8.3, которая не ниже требуемой конфигурацией.
Частые вопросы
Можно ли запустить на одном сервере две версии платформы?
srv1c:2541.Почему в «Программах и компонентах» одна версия, а служба работает на другой?
Версия в «О программе» у пользователя — это версия сервера?
Как узнать версию сервера, если служба не запускается?
ragent.exe в свойствах службы — он хранится даже у остановленной службы. Дополнительно помогут события MsiInstaller в журнале «Приложение».