Как установить серверы приложений 1С:Предприятие 8.3 и 8.5 на одном сервере и настроить их совместную работу

Системный администратор 1С v8.5 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

С выходом обновлений для типовых конфигураций, таких как 1С:Бухгалтерия предприятия 3.0, многие системные администраторы и разработчики столкнулись с необходимостью перехода на платформу версии 8.5. Особенность этого перехода заключается в том, что версия 8.5 является эволюционным продолжением ветки 8.3 (фактически начиная с релиза 8.3.27), но требует внимательного подхода при одновременном использовании со старыми релизами. Разберем подробно, как обеспечить стабильное сосуществование двух платформ на одном физическом или виртуальном сервере.

Понимание архитектуры 1С:Предприятие 8.5

Прежде всего, проанализируем, что представляет собой версия 8.5. Вопреки ожиданиям радикальных изменений, это развитие платформы 8.3. Основное технологическое новшество — глубокая интеграция интерфейса Элемент, ориентированного на веб-технологии. Однако для нас критически важно, что классический интерфейс Такси полностью сохранен. Это позволяет запускать старые конфигурации на новой платформе без визуальных изменений для пользователя. Мы можем либо полностью перевести все базы на 8.5, либо оставить часть на 8.3, настроив параллельную работу служб.

Параллельная установка служб на разные порты

Рассмотрим основной сценарий, когда нам необходимо запустить два независимых экземпляра сервера приложений. Процесс аналогичен установке разных релизов внутри ветки 8.3. По умолчанию сервер 1С использует порты 1540 (Manager), 1541 (Cluster) и диапазон 1560-1591 (Рабочие процессы). Для установки второй версии платформы нам потребуется назначить новые значения портов.

Разберем по шагам процесс создания второй службы в операционной системе Windows:

  1. Установим платформу 8.5 в штатном режиме, но отключим автоматическое создание службы сервера в инсталляторе.
  2. Запустим командную строку от имени администратора.
  3. Создадим новую службу, указав уникальное имя и смещенные порты (например, на 100 единиц вперед: 1640, 1641, 1660-1691).

Для создания службы используем команду sc create. Рассмотрим пример строки запуска:


sc create "1C:Enterprise 8.5 Server" binPath= "\"C:\Program Files\1cv8\8.5.1.100\bin\ragent.exe\" -srvc -agent -regport 1641 -port 1640 -range 1660:1691 -d \"C:\Program Files\1cv8\srvinfo_8_5\"" displayname= "1C:Enterprise 8.5 Server" depend= dnscache/Tcpip/lanmanworkstation start= auto

Важно обратить внимание на параметр -d. Мы должны обязательно указать отдельный каталог для данных кластера (srvinfo), иначе настройки одной версии перезапишут настройки другой, что приведет к неработоспособности обеих систем.

Регистрация COM-соединителя и общих компонентов

Выясним причину возможных конфликтов при работе с внешними соединениями. Система Windows позволяет зарегистрировать в реестре только одну библиотеку comcntr.dll в качестве основной. При установке версии 8.5 она автоматически перехватит регистрацию на себя. Если ваши внешние системы (например, интеграции через COM с другими базами или сайтами) жестко завязаны на версию 8.3, вам придется выполнить перерегистрацию вручную.

Для регистрации нужной версии COM используем утилиту regsvr32. Перейдем в каталог bin нужной платформы и выполним:


regsvr32 comcntr.dll

Проанализируем ситуацию с утилитами администрирования. Компоненты Common Components (драйверы ключей защиты, RAC, RAS) обновляются до версии 8.5. Как правило, утилита администрирования кластера версии 8.5 обратно совместима с серверами 8.3, но мы рекомендуем использовать консоль администрирования соответствующей версии для исключения ошибок метаданных кластера — для этих задач есть инструмент администрирования кластеров серверов и баз данных 1С.

Лицензирование при работе двух серверов

Посмотрим на вопрос лицензирования, который часто вызывает опасения. С технической точки зрения программные и аппаратные ключи, приобретенные для 8.3, полностью подходят для 8.5. Дополнительные лицензии "на версию" покупать не требуется.

Однако проанализируем потребление лицензий. Если на одном физическом сервере запущено два процесса ragent.exe (один для 8.3, другой для 8.5), то:

Настройка публикации на веб-сервере

Рассмотрим нюансы публикации баз на Apache или IIS. На одном веб-сервере могут одновременно работать публикации разных версий платформы. Основное правило — каждая публикация должна ссылаться на соответствующий модуль расширения веб-сервера.

В файле конфигурации httpd.conf (для Apache) или в настройках обработчика (для IIS) необходимо убедиться, что для базы на 8.3 указан путь к wsap24.dll из каталога 8.3, а для базы на 8.5 — из каталога 8.5. Попытка запустить базу 8.5 через расширение от 8.3 приведет к ошибке несоответствия версий HTTP-сервисов.

Режим совместимости и переход Бухгалтерии 3.0

Разберем, почему 1С:Бухгалтерия предприятия 3.0 требует перехода на 8.5. Начиная с определенных релизов (ориентировочно 3.0.198 и выше), разработчики 1С внедряют методы, доступные только в новом ядре платформы. При запуске такой конфигурации на старой платформе сработает проверка:


Если ПодключитьВнешнююКомпоненту("...") Тогда
    // Логика, доступная только в 8.5
Иначе
    ВызватьИсключение "Для работы данного релиза требуется платформа версии 8.5";
КонецЕсли;

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

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

Системные требования и СУБД

В завершение проанализируем требования к инфраструктуре. Платформа 8.5 более требовательна к актуальности системных библиотек. Для стабильной работы мы рекомендуем:

← На главную