Как запустить серверную базу 1С под другой версией платформы?

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

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

Наш читатель столкнулся именно с такой ситуацией: на сервере установлена платформа 8.3.19.1150, а он пытается запустить базу с локальной платформы 8.3.19.1229. При этом, даже указывая прямой путь к исполняемому файлу новой версии (C:\Program Files\1cv8\8.3.19.1229\bin\1cv8s), запускается все равно старая версия 8.3.19.1150. Давайте проанализируем, почему так происходит и что необходимо сделать.

Выясняем причину: Почему версии клиента и сервера должны совпадать?

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

  1. Протоколы взаимодействия: Клиентское приложение и сервер взаимодействуют между собой по определенным протоколам. Эти протоколы могут изменяться от версии к версии платформы 1С. Разработчики системы постоянно улучшают и оптимизируют внутренние механизмы взаимодействия, что может приводить к изменениям в структуре данных, способах обмена информацией и логике вызовов. Если клиентская и серверная части используют разные версии протоколов, они просто не смогут "понять" друг друга.
  2. Целостность данных и функциональность: Несоответствие версий может привести не только к невозможности подключения, но и к некорректной работе, зависаниям, ошибкам при выполнении операций или даже к повреждению данных в информационной базе. Платформа 1С очень чувствительна к целостности и консистентности.
  3. Сообщение об ошибке: При попытке запуска базы с несовпадающими версиями клиента и сервера, вы, как правило, получите ошибку вида "Несоответствие версий клиента и сервера 1С:Предприятие 8". Это прямое указание системы на причину проблемы.

Как справедливо отмечают коллеги в обсуждаемой теме, база запускается только под той платформой, что установлена на сервере. Если на сервере работает 8.3.19.1150, то клиент 8.3.19.1229 запустить серверную базу не сможет никак. Никакие специальные настройки или прямой запуск исполняемых файлов (1cv8s.exe, 1cv8.exe или 1cv8c.exe) из каталога новой версии не помогут. Должна быть одна совпадающая версия как на сервере, так и на клиентских рабочих станциях.

Анализируем попытку запуска: Почему 1cv8s.exe не помог?

Наш читатель, пытаясь запустить базу под новой версией, использовал исполняемый файл 1cv8s.exe из каталога C:\Program Files\1cv8\8.3.19.1229\bin\. Давайте разберемся, как работают программы запуска 1С:Предприятие и почему в данном случае это не привело к желаемому результату.

В системе 1С:Предприятие существуют несколько ключевых стартеров:

  1. 1cestart.exe (Стандартный стартер): Этот файл обычно находится в каталоге C:\Program Files (x86)\1cv8\common\ и является основной точкой входа для запуска 1С. При установке каждой новой версии платформы 1С:Предприятие, файл 1cestart.exe обновляется, указывая на самую последнюю установленную версию. Его задача — упростить запуск, автоматически выбирая подходящую версию клиента.
  2. 1cv8s.exe (Интерактивная программа запуска): Сам 1cestart.exe затем запускает интерактивную программу 1cv8s.exe, которая находится в подкаталоге bin последней установленной на компьютере версии платформы (например, C:\Program Files\1cv8\8.3.19.1229\bin\1cv8s.exe).

Программа 1cv8s.exe обладает расширенной функциональностью и призвана автоматизировать выбор подходящей версии платформы и клиентского приложения. Однако, её возможности не безграничны, и она работает по определенным правилам:

В нашем случае, когда сервер требует 8.3.19.1150, а пользователь пытается запустить 1cv8s.exe из каталога 8.3.19.1229, происходит следующее: 1cv8s.exe из версии 1229 пытается подключиться к серверу. Сервер сообщает, что он работает на версии 1150. Если на локальной машине не установлена или не доступна версия 1150, или же 1cv8s.exe не смог её определить/запустить, то произойдет отказ в подключении. Именно поэтому, даже прямой запуск новой версии не поможет, если сервер не готов с ней работать.

Как верно подмечено, функционал 1cv8s.exe для автоматического выбора версии более применим, если в компании используются несколько разных серверов 1С:Предприятия, каждый из которых работает на своей версии платформы. Например, один сервер для управленческой базы на 8.3.19.1150, а другой для бухгалтерской на 8.3.19.1229. Тогда 1cv8s.exe (запускаемый через 1cestart.exe) смог бы определить нужную версию для каждого сервера и запустить соответствующее клиентское приложение, если оно, конечно, установлено локально. Но это не решает проблему несовместимости одной серверной базы с клиентом другой версии.

Основное решение проблемы: Обновление платформы на сервере

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

Разберем процесс обновления по шагам:

  1. Подготовка к обновлению:
    • Убедитесь, что у вас есть резервные копии всех информационных баз, работающих на данном сервере. Это критически важный шаг для предотвращения потери данных.
    • Завершите все активные сеансы пользователей в обновляемых информационных базах.
    • Скачайте дистрибутив нужной версии платформы (8.3.19.1229 в нашем случае) с официального сайта поддержки 1С (portal.1c.ru).
  2. Установка новой версии платформы на сервер:
    • Запустите инсталлятор новой платформы на сервере 1С:Предприятия.
    • Во время установки убедитесь, что выбраны компоненты "Сервер 1С:Предприятия" и "Модули расширения веб-сервера" (если базы опубликованы на веб-сервере).
    • Проверьте, что в конце установки нет ошибок.
  3. Обновление кластера серверов 1С:Предприятия:
    • После установки новой версии платформы, вам необходимо обновить кластер серверов, чтобы он начал использовать новую версию.
    • Перейдите в "Консоль администрирования серверов 1С:Предприятия" (compmgmt.msc -> Службы -> Агент сервера 1С:Предприятия 8.3).
    • Остановите службу "Агента сервера 1С:Предприятия 8.3".
    • Запустите службу снова. При первом запуске после обновления, служба агента сервера обнаружит новую версию платформы и предложит обновить кластер. Подтвердите обновление.
    • Также вы можете вручную указать версию платформы для кластера через консоль администрирования. В свойствах рабочего сервера, в разделе "Версия 1С:Предприятия", выберите установленную версию 8.3.19.1229.
  4. Обновление конфигурационных файлов веб-сервера (если используется):
    • Если ваши базы опубликованы на веб-сервере (например, Apache или IIS), после обновления платформы на сервере необходимо проверить и, при необходимости, обновить конфигурационные файлы веб-сервера.
    • Найдите строку с директивой загрузки модуля 1С:Предприятия (например, LoadModule _1cws_module "C:/Program Files/1cv8/8.3.19.1150/bin/wsap22.dll" для Apache).
    • Закомментируйте старую строку и раскомментируйте или добавьте новую, указывающую на путь к модулю новой версии платформы (например, LoadModule _1cws_module "C:/Program Files/1cv8/8.3.19.1229/bin/wsap22.dll").
    • Перезапустите службу веб-сервера.
  5. Обновление клиентских приложений:
    • После успешного обновления платформы на сервере, необходимо обновить клиентские приложения на всех рабочих станциях до соответствующей версии (8.3.19.1229).
    • Установите новую платформу на локальные компьютеры пользователей.
    • Убедитесь, что ярлыки запуска 1С ведут к стандартному стартеру 1cestart.exe, который автоматически выберет нужную версию, или же создайте новые ярлыки, указывающие на 1cestart.exe.

Только после выполнения этих шагов вы сможете корректно запускать серверную базу клиента 8.3.19.1229.

Альтернативное решение: Установка соответствующей версии клиентского приложения

Если по каким-либо причинам обновление платформы на сервере в данный момент невозможно, единственным рабочим вариантом для пользователя будет установка на своем локальном компьютере версии клиентского приложения, которая строго соответствует версии платформы на сервере 1С:Предприятия. В нашем случае это означает, что пользователю необходимо установить клиент 8.3.19.1150.

Вот как это можно сделать:

  1. Скачайте дистрибутив: Загрузите дистрибутив платформы 8.3.19.1150 с портала 1С.
  2. Установите клиентское приложение: Установите эту версию платформы на ваш локальный компьютер. Система 1С:Предприятие позволяет устанавливать несколько версий платформы одновременно, они будут располагаться в отдельных подкаталогах (например, C:\Program Files\1cv8\8.3.19.1150\ и C:\Program Files\1cv8\8.3.19.1229\).
  3. Настройте запуск:
    • Через 1cestart.exe: Если вы хотите использовать стандартный подход, убедитесь, что в списке информационных баз в стартере 1С:Предприятие для вашей серверной базы указана опция "Выбирать автоматически" или "Последняя". 1cestart.exe через 1cv8s.exe должен будет определить, что сервер требует 8.3.19.1150, и запустить соответствующую локально установленную версию клиента.
    • Прямой запуск: В крайнем случае, вы можете создать ярлык, который будет напрямую запускать исполняемый файл 1cv8.exe или 1cv8c.exe из каталога C:\Program Files\1cv8\8.3.19.1150\bin\. Однако это менее гибкий подход, чем использование 1cestart.exe.

Таким образом, для успешного подключения к серверной базе на 8.3.19.1150 вам потребуется клиент именно этой версии. Другие версии, даже более новые, работать не будут.

Продвинутые сценарии: Использование нескольких версий платформы и кластеров на одном сервере

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

На одном физическом сервере можно установить несколько версий платформы 1С:Предприятие. Это часто делается для поддержки различных информационных баз, которым по каким-либо причинам необходимы разные версии платформы. Например, у вас может быть одна конфигурация, работающая стабильно на 8.3.19.1150, а другая, требующая функционала из 8.3.19.1229. В таком случае, для каждой версии платформы требуется создать отдельный кластер серверов. Для удобного администрирования нескольких кластеров пригодится мультиверсионная консоль администрирования кластера серверов 1С.

Разберем это подробнее:

  1. Отдельные службы агентов сервера: Для каждой установленной версии платформы 1С:Предприятие необходимо создать свою отдельную службу агента сервера. При этом каждая служба должна быть настроена на использование своего уникального сетевого порта (например, стандартный 1540 для одного кластера, а 2540 для другого). Также каждая служба должна использовать свой отдельный каталог кластера для хранения служебных файлов.
  2. Консоль администрирования: Для управления каждым кластером потребуется зарегистрировать соответствующую версию консоли администрирования (например, файл radmin.dll из каталога конкретной версии платформы).
  3. Регистрация информационных баз: Информационные базы должны быть зарегистрированы в соответствующем кластере серверов 1С:Предприятия. То есть база, требующая 8.3.19.1150, регистрируется в кластере 8.3.19.1150, а база, требующая 8.3.19.1229, регистрируется в кластере 8.3.19.1229.

Именно такой сценарий позволяет 1cv8s.exe автоматически выбирать нужную версию клиента: когда пользователь подключается к базе, стартер получает информацию о кластере и его версии, и запускает локально установленный клиент, соответствующий этому кластеру.

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

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

Важный аспект: Разрядность клиентского и серверного приложений

Помимо версии платформы, есть еще один важный аспект, который может вызывать вопросы – это разрядность (битрейт) приложений: 32-разрядные (x86) и 64-разрядные (x64).

Важно понимать, что разрядность кластера серверов 1С:Предприятия может не совпадать с разрядностью клиентских приложений. Например, вполне нормально, когда 64-разрядный сервер 1С:Предприятия работает с 32-разрядными клиентскими приложениями. И наоборот, теоретически, 32-разрядный сервер может обслуживать 64-разрядных клиентов (хотя это менее распространено из-за ограничений 32-битных систем).

На клиентском компьютере также могут быть установлены несколько версий клиентских приложений 1С:Предприятия разной разрядности. Выбор разрядности клиентского приложения для запуска можно задать несколькими способами:

  1. Через ключ командной строки запуска, например, /AppArch.
  2. В параметрах запуска информационной базы в окне стартера 1С.
  3. В настройках интерактивной программы запуска 1cv8s.exe.
  4. Через конфигурационные файлы.

Таким образом, разрядность — это отдельный параметр, который нужно учитывать, но он не отменяет строгого требования к совпадению номера версии платформы между клиентом и сервером.

Подводим итоги

Мы подробно рассмотрели ситуацию, когда пользователь пытается запустить серверную базу 1С:Предприятие под клиентским приложением другой версии. Главный вывод: версия платформы клиентского приложения должна строго соответствовать версии платформы, установленной на сервере 1С:Предприятия. Это фундаментальное требование для стабильной и корректной работы системы.

Выяснили, что механизмы автоматического выбора версии (1cestart.exe, 1cv8s.exe) помогают в случае наличия нескольких версий платформы локально или при работе с разными серверами, но они не могут обойти требование о совпадении версий между одним клиентом и одним сервером.

Предложенные решения включают:

  1. Обновление платформы на сервере до требуемой версии, а затем обновление клиентских приложений. Это наиболее правильный и рекомендуемый путь.
  2. В качестве временного или вынужденного решения – установка на клиентский компьютер версии платформы, которая в точности соответствует серверной.

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

← На главную