Где посмотреть, какая платформа стоит на сервере 1С:Предприятия

· 9 мин

Содержание

Версию сервера 1С быстрее всего определить по пути к исполняемому файлу службы агента: откройте services.msc, найдите службу «Агент сервера 1С:Предприятия 8.3», и в поле «Исполняемый файл» будет путь вида C:\Program Files\1cv8\8.3.24.1548\bin\ragent.exe. Номер папки — это и есть версия платформы, на которой работает сервер.

Остальные способы нужны, когда доступа к рабочему столу сервера нет, когда на машине установлено несколько версий или когда сервер работает на Linux. Если вы администратор сервера, хватит службы или PowerShell. Если доступ есть только к базе — версию можно получить программно, из самой 1С.

Свойства службы агента в Windows

На сервере может быть установлено пять разных версий платформы, а работает только та, из папки которой запущена служба. Поэтому список установленных программ — плохой ориентир. Смотрите именно на службу.

  1. Нажмите Win + R, введите services.msc.
  2. Найдите службу с именем «Агент сервера 1С:Предприятия 8.3 (x86-64)». В англоязычной системе имя будет похожим: «1C:Enterprise 8.3 Server Agent (x86-64)».
  3. Откройте её двойным щелчком.
  4. На вкладке «Общие» посмотрите поле «Исполняемый файл».

Строка обычно выглядит так:

"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. Это удобно для диагностики.

Порядок такой:

  1. Откройте консоль, добавьте центральный сервер по имени и порту агента (по умолчанию 1540).
  2. Если подключение проходит, версия оснастки совпадает с версией сервера.
  3. Если появляется ошибка о несоответствии версий, в её тексте указаны обе версии — и ваша, и серверная.

Какая версия оснастки сейчас зарегистрирована, легко понять по последней команде регистрации. Чтобы переключить консоль на нужную версию, зарегистрируйте 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-файлом systemdsrv1cv8-8.3.24.1548@defaultsystemctl list-units 'srv1cv8*'
Старые версии со скриптом init.d/etc/init.d/srv1cv83ps -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, то есть на сервере.

Код не зависит от состава конфигурации и подходит для любой базы. Обработку можно открыть через «Файл → Открыть», если у пользователя есть право на открытие внешних обработок.

Какой у вас доступ к серверу 1С?

Сравнение версий клиента и сервера 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, которая не ниже требуемой конфигурацией.

Частые вопросы

Можно ли запустить на одном сервере две версии платформы?
Да. Каждая версия ставится в свою папку, а агенты разносят по разным портам, например 1540 и 2540. Клиенты указывают порт в адресе сервера: srv1c:2541.
Почему в «Программах и компонентах» одна версия, а служба работает на другой?
Установка новой платформы не переключает службу автоматически. Служба продолжает запускаться из старой папки, пока её не перерегистрировать на новую версию.
Версия в «О программе» у пользователя — это версия сервера?
Для клиент-серверной базы — да, иначе клиент бы не подключился. Для веб-клиента и файловых баз это не так: там стоит проверять сервер отдельно.
Как узнать версию сервера, если служба не запускается?
Посмотрите путь к ragent.exe в свойствах службы — он хранится даже у остановленной службы. Дополнительно помогут события MsiInstaller в журнале «Приложение».
Нужно ли обновлять сервер одновременно с клиентами?
Да, в клиент-серверном режиме они должны совпадать. Обычно сначала раскладывают новый клиент на рабочие места, затем в окно обслуживания обновляют сервер.