При обновлении платформы «1С:Предприятие 8» системные администраторы часто сталкиваются с ситуацией, когда большинство информационных баз необходимо перевести на новый релиз, но одну или несколько баз требуется оставить на прежней версии. На первый взгляд задача кажется простой: достаточно прописать нужную версию в настройках запуска или запустить исполняемый файл напрямую из папки конкретного релиза. Однако на практике пользователи обнаруживают, что система всё равно упорно запускает последнюю установленную версию платформы.
В этой статье мы подробно разберем, почему возникает эта проблема, проанализируем влияние разрядности клиентского приложения (32-бит против 64-бит) и выясним, как правильно организовать работу, если ваша информационная база работает в клиент-серверном режиме.
---
Рассмотрим ситуацию, когда на рабочем месте пользователя установлены две версии платформы: например, старая 8.3.11.2954 и новая 8.3.12.1714. Вы пытаетесь принудительно запустить старую версию через ярлык или дополнительные параметры, но система всё равно открывает базу под новой платформой.
Причина такого поведения часто кроется в разрядности установленных программ. Если старая версия 8.3.11 была 32-разрядной (x86), а новую версию 8.3.12 установили как 64-разрядную (x64), стандартный загрузчик 1cestart по умолчанию отдает приоритет 64-битному клиенту. Он игнорирует указание конкретного номера релиза, если видит более «приоритетную» архитектуру.
Чтобы решить эту проблему и принудительно запустить 32-разрядную версию, мы можем использовать несколько способов:
8.3.11.2954./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
1cestart.cfg, который обычно располагается в каталоге %APPDATA%\1C\1CEStart. Добавим строку, указывающую предпочтительную версию и ее разрядность через точку с запятой:
DefaultVersion=8.3.11.2954;x86
---
Если ваша информационная база является файловой, то настройки разрядности клиента, описанной выше, будет вполне достаточно. Однако, если база работает в клиент-серверном режиме (на сервере приложений 1С), мы сталкиваемся с фундаментальным техническим ограничением платформы.
Правило жесткого соответствия: версии тонкого или толстого клиента на компьютере пользователя и версия службы сервера «1С:Предприятия» должны совпадать абсолютно точно, вплоть до последнего знака номера сборки. Если сервер приложений обновлен до версии 8.3.12.1714, то запустить клиентское приложение версии 8.3.11.2954 для работы с этим сервером физически невозможно. При попытке подключения система выдаст ошибку несоответствия версий. Для быстрой проверки служб и выявления причин таких расхождений можно использовать обработку для диагностики конфликтов платформ и служб 1С.
Таким образом, просто настроить клиентский компьютер недостаточно. Чтобы запустить базу под старой версией, нам необходимо иметь работающую службу сервера 1С именно этой старой версии.
---
Если перед нами стоит задача сохранить работу одной из серверных баз на старой платформе, нам потребуется развернуть второй сервер «1С:Предприятия» параллельно с существующим новым. Выполним этот процесс по шагам.
Запустим установщик старой версии платформы (в нашем примере — 8.3.11.2954) на сервере. При выборе компонентов обязательно снимем галочку с пункта «Установить сервер 1С:Предприятия как службу Windows». Это критически важно: если оставить эту опцию активной, установщик перезапишет настройки уже существующей и работающей службы нового сервера.
Поскольку установщик не создал службу для нашей старой версии, мы должны зарегистрировать её самостоятельно. Для этого откроем командную строку Windows от имени администратора и воспользуемся утилитой sc create.
При планировании запуска второго сервера нам необходимо развести службы по разным сетевым портам и выделить для старого сервера отдельный каталог реестра кластера. По умолчанию сервер 1С использует следующие порты:
154015411560-1591Для второй (старой) службы мы назначим альтернативные порты (например, заменим первую цифру «1» на «2»):
254025412560-2591Также обязательно создадим на диске сервера отдельную пустую папку для реестра данных старого кластера, например: 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», которая будет запускаться автоматически и работать на альтернативных портах.
Теперь, когда у нас одновременно запущены два сервера приложений 1С разных версий, нам нужно правильно настроить параметры подключения в окне запуска у пользователей.
Для баз, работающих на новом сервере, настройки остаются прежними. Для базы, которую мы перенесли на старый сервер, в свойствах подключения необходимо явно указать альтернативный порт менеджера кластера. В поле «Сервер приложения» пропишем адрес в формате:
ИмяСервера:2541
В поле «Имя информационной базы» укажем имя базы так, как она зарегистрирована на старом сервере приложений.
Для создания и администрирования баз на старом сервере нам потребуется соответствующая консоль администрирования. Так как стандартная консоль MMC регистрируется для последней установленной версии платформы, для работы со старым кластером нам нужно запустить утилиту администрирования конкретной версии. Мы можем сделать это, запустив файл Radm.exe или зарегистрировав библиотеку radmin.dll из каталога bin старой платформы 8.3.11.2954. Для автоматизации этого процесса можно воспользоваться утилитой для регистрации и запуска консоли кластера 1С нужной версии.
При создании подключения к центральному серверу в консоли администрирования обязательно укажем порт управляющего агента: 2540.
---
Мы подробно проанализировали механизмы запуска различных версий «1С:Предприятия». Для успешного решения проблемы всегда разделяйте понятия файлового и клиент-серверного вариантов работы: