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

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

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

В этой статье мы подробно разберем, почему возникает эта проблема, проанализируем влияние разрядности клиентского приложения (32-бит против 64-бит) и выясним, как правильно организовать работу, если ваша информационная база работает в клиент-серверном режиме.

---

Причина 1. Конфликт разрядностей клиента (32-бит vs 64-бит)

Рассмотрим ситуацию, когда на рабочем месте пользователя установлены две версии платформы: например, старая 8.3.11.2954 и новая 8.3.12.1714. Вы пытаетесь принудительно запустить старую версию через ярлык или дополнительные параметры, но система всё равно открывает базу под новой платформой.

Причина такого поведения часто кроется в разрядности установленных программ. Если старая версия 8.3.11 была 32-разрядной (x86), а новую версию 8.3.12 установили как 64-разрядную (x64), стандартный загрузчик 1cestart по умолчанию отдает приоритет 64-битному клиенту. Он игнорирует указание конкретного номера релиза, если видит более «приоритетную» архитектуру.

Чтобы решить эту проблему и принудительно запустить 32-разрядную версию, мы можем использовать несколько способов:

  1. Настройка в списке информационных баз. Откроем окно запуска 1С, выберем нужную базу и нажмем кнопку «Изменить». Пройдем по шагам помощника до последней вкладки («Параметры запуска»). Найдем поле «Разрядность». Вместо значения «Выбирать автоматически» установим значение «32 (x86)». В поле «Версия платформы» укажем конкретный релиз, например, 8.3.11.2954.
  2. Использование параметра командной строки. Если запуск баз выполняется через скрипты или ярлыки, мы можем использовать специальный ключ /AppArch для жесткого определения разрядности.

    Для запуска 32-разрядного клиента:

    "C:\Program Files (x86)\1cv8\common\1cestart.exe" ENTERPRISE /F"ПутьКБазе" /AppArch x86

    Для запуска 64-разрядного клиента:

    "C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"ПутьКБазе" /AppArch x86_64
  3. Редактирование конфигурационного файла. Мы можем прописать глобальные правила выбора версии в файле конфигурации 1cestart.cfg, который обычно располагается в каталоге %APPDATA%\1C\1CEStart. Добавим строку, указывающую предпочтительную версию и ее разрядность через точку с запятой: DefaultVersion=8.3.11.2954;x86

---

Причина 2. Особенности работы в клиент-серверном режиме

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

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

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

---

Решение: Запуск двух серверов 1С разных версий на одном компьютере

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

Шаг 1. Установка старой версии платформы на сервер

Запустим установщик старой версии платформы (в нашем примере — 8.3.11.2954) на сервере. При выборе компонентов обязательно снимем галочку с пункта «Установить сервер 1С:Предприятия как службу Windows». Это критически важно: если оставить эту опцию активной, установщик перезапишет настройки уже существующей и работающей службы нового сервера.

Шаг 2. Создание новой службы Windows вручную

Поскольку установщик не создал службу для нашей старой версии, мы должны зарегистрировать её самостоятельно. Для этого откроем командную строку Windows от имени администратора и воспользуемся утилитой sc create.

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

Для второй (старой) службы мы назначим альтернативные порты (например, заменим первую цифру «1» на «2»):

Также обязательно создадим на диске сервера отдельную пустую папку для реестра данных старого кластера, например: C:\ClusterData_8_3_11. Если этого не сделать, службы будут пытаться использовать один и тот же каталог реестра, что приведет к повреждению настроек обеих платформ.

Теперь выполним в командной строке команду создания службы (обратите внимание на пробелы после знаков «равно» — они обязательны для синтаксиса команды sc):


sc create "1C:Enterprise 8.3.11 Server Agent" binPath= "\"C:\Program Files (x86)\1cv8\8.3.11.2954\bin\ragent.exe\" -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d \"C:\ClusterData_8_3_11\"" start= auto obj= "NT AUTHORITY\SYSTEM"

После успешного выполнения команды в списке служб Windows появится новая служба с именем «1C:Enterprise 8.3.11 Server Agent», которая будет запускаться автоматически и работать на альтернативных портах.

Шаг 3. Настройка подключения пользователей к старому серверу

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

Для баз, работающих на новом сервере, настройки остаются прежними. Для базы, которую мы перенесли на старый сервер, в свойствах подключения необходимо явно указать альтернативный порт менеджера кластера. В поле «Сервер приложения» пропишем адрес в формате:

ИмяСервера:2541

В поле «Имя информационной базы» укажем имя базы так, как она зарегистрирована на старом сервере приложений.

Шаг 4. Администрирование старого сервера

Для создания и администрирования баз на старом сервере нам потребуется соответствующая консоль администрирования. Так как стандартная консоль MMC регистрируется для последней установленной версии платформы, для работы со старым кластером нам нужно запустить утилиту администрирования конкретной версии. Мы можем сделать это, запустив файл Radm.exe или зарегистрировав библиотеку radmin.dll из каталога bin старой платформы 8.3.11.2954. Для автоматизации этого процесса можно воспользоваться утилитой для регистрации и запуска консоли кластера 1С нужной версии.

При создании подключения к центральному серверу в консоли администрирования обязательно укажем порт управляющего агента: 2540.

---

Резюме

Мы подробно проанализировали механизмы запуска различных версий «1С:Предприятия». Для успешного решения проблемы всегда разделяйте понятия файлового и клиент-серверного вариантов работы:

← На главную