В практике администрирования и сопровождения "1С:Предприятия" часто возникают ситуации, когда после обновления платформы поведение системы запуска кажется нелогичным. Одной из таких ситуаций является упорный запуск старой версии клиента (например, 8.3.27.1644), хотя пользователь намеренно запускает исполняемый файл из каталога новой версии (например, 8.3.27.1859). В этой статье мы подробно разберем механизм работы программы запуска, выясним причины такого поведения и определим шаги для диагностики и устранения проблемы.
Рассмотрим типовой сценарий, с которым сталкиваются пользователи и специалисты:
1cv8s.exe из папки c:\Program Files\1cv8\8.3.27.1859\bin\, открывается сеанс на старой версии (это видно в меню "О программе").Многих это ставит в тупик: казалось бы, мы явно указали путь к новому исполняемому файлу, но система "игнорирует" наш выбор.
Чтобы понять причину происходящего, нам необходимо углубиться в архитектуру запуска клиентских приложений 1С. Ключевым звеном здесь является механизм автоматического подбора версии.
В папке bin любой версии платформы обычно находятся несколько исполняемых файлов:
1cestart.exe — универсальный стартер (обычно лежит в common).1cv8s.exe — программа запуска (интерактивный режим).1cv8c.exe — тонкий клиент.1cv8.exe — толстый клиент.Когда мы запускаем 1cv8s.exe (даже из конкретной папки релиза), происходит следующий процесс:
Таким образом, в рассматриваемой ситуации отсутствие ошибки запуска говорит нам о том, что механизм согласования версий сработал успешно: сервер сообщил свою старую версию, клиент нашел её у себя на диске и запустил.
Исходя из алгоритма работы стартера, мы можем сделать однозначный вывод: если запускается старый релиз без ошибок, значит, Агент сервера 1С продолжает работать на старом релизе. То, что администраторы установили новую платформу на серверную машину, еще не означает, что служба сервера была переключена на неё.
Давайте разберем способы, как в этом убедиться:
Самый простой способ. Запустите 1С любым способом, зайдите в режим "1С:Предприятие". Откройте главное меню (справа вверху) -> "Справка" -> "О программе". В первой строке будет указана версия клиента, а в нижней части окна (в строке "Режим:") часто указывается версия сервера (если у вас есть соответствующие права и настройки интерфейса позволяют это видеть). Но главное — версия клиента. Если она старая, и ошибки нет — сервер старый.
Попробуем обмануть систему и запустить конкретный клиентский файл, который не умеет переключать версии "на лету". Вместо 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".
Это будет "железным" доказательством того, что служба сервера работает на старом релизе.
Если администраторы утверждают, что "обновили", это может означать следующее:
setup.exe новой платформы. Это копирует файлы на диск, но служба Windows "Агент сервера 1С:Предприятия 8.3" продолжает ссылаться на исполняемый файл старой версии (ragent.exe из старой папки bin). Для обновления нужно либо перерегистрировать службу, либо при установке выбрать соответствующие галочки (если ставится как обновление).Поскольку проблема находится на стороне сервера, действия на клиенте (переустановка клиента, очистка кэша, правка списков баз) не помогут запустить новую версию. Решение требует вмешательства администратора сервера. Для упрощения контроля и переключения между разными версиями платформ на стороне сервера администратору может пригодиться кроссплатформенная мультиверсионная консоль администрирования кластера 1С.
Нам необходимо попросить администраторов проверить свойства службы сервера 1С.
services.msc).Там должен быть путь к новой версии, например:
"C:\Program Files\1cv8\8.3.27.1859\bin\ragent.exe" -ragent ...
Если путь ведет к папке ...1644\bin\ragent.exe, значит обновление не завершено. Необходимо:
sc delete ... или средствами инсталлятора 1С).ragent.exe -instsrv ...).Если администраторы скажут: "Мы поставили новую версию на порту 2541", то вам необходимо изменить настройки подключения в списке информационных баз на клиенте.
В поле "Кластер серверов" вместо простого имени сервера MyServer нужно написать MyServer:2541. Для массового изменения этих настроек у множества пользователей в домене можно использовать утилиту для автоматического обновления файлов ibases.v8i через GPO.
Подведем итог. Программа запуска 1С (стартер) разработана так, чтобы обеспечивать бесперебойную работу пользователя. Она отдает приоритет версии сервера. Если при попытке запуска новой платформы открывается старая и не возникает ошибок — это однозначный признак того, что серверная часть не была переключена на новый релиз. "Обмануть" стартер настройками клиента невозможно, необходимо корректно завершить обновление на стороне сервера.