Почему запускается старая версия платформы 1С, даже если открывать программу через файл из папки новой версии?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В практике администрирования и сопровождения "1С:Предприятия" часто возникают ситуации, когда после обновления платформы поведение системы запуска кажется нелогичным. Одной из таких ситуаций является упорный запуск старой версии клиента (например, 8.3.27.1644), хотя пользователь намеренно запускает исполняемый файл из каталога новой версии (например, 8.3.27.1859). В этой статье мы подробно разберем механизм работы программы запуска, выясним причины такого поведения и определим шаги для диагностики и устранения проблемы.

Суть проблемы: конфликт ожиданий и реальности

Рассмотрим типовой сценарий, с которым сталкиваются пользователи и специалисты:

  1. На сервере "1С:Предприятия" администраторы (по их словам) произвели обновление платформы до актуального релиза.
  2. На клиентском компьютере установлены обе версии платформы: старая и новая.
  3. Пользователь пытается запустить базу, ожидая работу на новой платформе.
  4. Даже при прямом запуске файла 1cv8s.exe из папки c:\Program Files\1cv8\8.3.27.1859\bin\, открывается сеанс на старой версии (это видно в меню "О программе").

Многих это ставит в тупик: казалось бы, мы явно указали путь к новому исполняемому файлу, но система "игнорирует" наш выбор.

Как работает механизм запуска (Starter)

Чтобы понять причину происходящего, нам необходимо углубиться в архитектуру запуска клиентских приложений 1С. Ключевым звеном здесь является механизм автоматического подбора версии.

В папке bin любой версии платформы обычно находятся несколько исполняемых файлов:

Когда мы запускаем 1cv8s.exe (даже из конкретной папки релиза), происходит следующий процесс:

  1. Чтение списка баз: Программа считывает параметры подключения к выбранной информационной базе.
  2. Опрос сервера (для клиент-серверных баз): Если база серверная, программа запуска обращается к кластеру серверов по указанному адресу (по умолчанию порт 1541) и запрашивает версию платформы, на которой работает сервер.
  3. Поиск соответствия: Получив ответ от сервера (например, "Я работаю на версии 8.3.27.1644"), локальный стартер проверяет наличие этой версии на клиентском компьютере.
  4. Переключение контекста:
    • Если требуемая сервером версия установлена локально, стартер автоматически запускает именно её, игнорируя тот факт, что изначально был запущен файл из папки другой версии. Это штатное поведение, обеспечивающее совместимость.
    • Если требуемая сервером версия не установлена локально, стартер попытается запустить ту версию, из которой был вызван (или максимально свежую), что неминуемо приведет к ошибке "Несоответствие версий клиента и сервера".

Таким образом, в рассматриваемой ситуации отсутствие ошибки запуска говорит нам о том, что механизм согласования версий сработал успешно: сервер сообщил свою старую версию, клиент нашел её у себя на диске и запустил.

Диагностика: как подтвердить, что сервер не обновлен

Исходя из алгоритма работы стартера, мы можем сделать однозначный вывод: если запускается старый релиз без ошибок, значит, Агент сервера 1С продолжает работать на старом релизе. То, что администраторы установили новую платформу на серверную машину, еще не означает, что служба сервера была переключена на неё.

Давайте разберем способы, как в этом убедиться:

1. Проверка через меню "О программе"

Самый простой способ. Запустите 1С любым способом, зайдите в режим "1С:Предприятие". Откройте главное меню (справа вверху) -> "Справка" -> "О программе". В первой строке будет указана версия клиента, а в нижней части окна (в строке "Режим:") часто указывается версия сервера (если у вас есть соответствующие права и настройки интерфейса позволяют это видеть). Но главное — версия клиента. Если она старая, и ошибки нет — сервер старый.

2. Попытка принудительного запуска (Тест на ошибку)

Попробуем обмануть систему и запустить конкретный клиентский файл, который не умеет переключать версии "на лету". Вместо 1cv8s.exe попробуйте запустить 1cv8c.exe (Тонкий клиент) или 1cv8.exe (Толстый клиент) строго из папки новой платформы.

Путь будет примерно таким: c:\Program Files\1cv8\8.3.27.1859\bin\1cv8c.exe

Если сервер действительно не обновлен, вы получите сообщение об ошибке следующего вида:

"Ошибка несоответствия версий. Версия клиента: 8.3.27.1859. Версия сервера: 8.3.27.1644".

Это будет "железным" доказательством того, что служба сервера работает на старом релизе.

Причины, по которым сервер мог остаться на старой версии

Если администраторы утверждают, что "обновили", это может означать следующее:

  1. Установка без регистрации службы: Они просто запустили инсталлятор setup.exe новой платформы. Это копирует файлы на диск, но служба Windows "Агент сервера 1С:Предприятия 8.3" продолжает ссылаться на исполняемый файл старой версии (ragent.exe из старой папки bin). Для обновления нужно либо перерегистрировать службу, либо при установке выбрать соответствующие галочки (если ставится как обновление).
  2. Параллельная установка: Админы могли настроить новую службу параллельно на других портах (например, 1640/1641 или 2540/2541), чтобы протестировать новую версию, не останавливая работу старой. В этом случае, если вы подключаетесь по стандартному порту (или без указания порта), вы попадаете на старую службу.
  3. Отсутствие перезапуска: Иногда файлы обновлены, реестр обновлен, но сама служба не была перезапущена, и в памяти висит старый процесс.

Решение проблемы

Поскольку проблема находится на стороне сервера, действия на клиенте (переустановка клиента, очистка кэша, правка списков баз) не помогут запустить новую версию. Решение требует вмешательства администратора сервера. Для упрощения контроля и переключения между разными версиями платформ на стороне сервера администратору может пригодиться кроссплатформенная мультиверсионная консоль администрирования кластера 1С.

Действия для администратора:

Нам необходимо попросить администраторов проверить свойства службы сервера 1С.

  1. Открыть оснастку "Службы" (services.msc).
  2. Найти службу "Агент сервера 1С:Предприятия 8.3" (или как она названа в вашей системе).
  3. Открыть "Свойства" и посмотреть строку "Исполняемый файл".

Там должен быть путь к новой версии, например: "C:\Program Files\1cv8\8.3.27.1859\bin\ragent.exe" -ragent ...

Если путь ведет к папке ...1644\bin\ragent.exe, значит обновление не завершено. Необходимо:

  1. Остановить службу.
  2. Удалить старую службу (через командную строку sc delete ... или средствами инсталлятора 1С).
  3. Зарегистрировать новую службу из папки новой платформы (командой ragent.exe -instsrv ...).
  4. Запустить новую службу.

Если использованы нестандартные порты

Если администраторы скажут: "Мы поставили новую версию на порту 2541", то вам необходимо изменить настройки подключения в списке информационных баз на клиенте.

В поле "Кластер серверов" вместо простого имени сервера MyServer нужно написать MyServer:2541. Для массового изменения этих настроек у множества пользователей в домене можно использовать утилиту для автоматического обновления файлов ibases.v8i через GPO.

Заключение

Подведем итог. Программа запуска 1С (стартер) разработана так, чтобы обеспечивать бесперебойную работу пользователя. Она отдает приоритет версии сервера. Если при попытке запуска новой платформы открывается старая и не возникает ошибок — это однозначный признак того, что серверная часть не была переключена на новый релиз. "Обмануть" стартер настройками клиента невозможно, необходимо корректно завершить обновление на стороне сервера.

← На главную