С выходом обновлений для типовых конфигураций, таких как 1С:Бухгалтерия предприятия 3.0, многие системные администраторы и разработчики столкнулись с необходимостью перехода на платформу версии 8.5. Особенность этого перехода заключается в том, что версия 8.5 является эволюционным продолжением ветки 8.3 (фактически начиная с релиза 8.3.27), но требует внимательного подхода при одновременном использовании со старыми релизами. Разберем подробно, как обеспечить стабильное сосуществование двух платформ на одном физическом или виртуальном сервере.
Прежде всего, проанализируем, что представляет собой версия 8.5. Вопреки ожиданиям радикальных изменений, это развитие платформы 8.3. Основное технологическое новшество — глубокая интеграция интерфейса Элемент, ориентированного на веб-технологии. Однако для нас критически важно, что классический интерфейс Такси полностью сохранен. Это позволяет запускать старые конфигурации на новой платформе без визуальных изменений для пользователя. Мы можем либо полностью перевести все базы на 8.5, либо оставить часть на 8.3, настроив параллельную работу служб.
Рассмотрим основной сценарий, когда нам необходимо запустить два независимых экземпляра сервера приложений. Процесс аналогичен установке разных релизов внутри ветки 8.3. По умолчанию сервер 1С использует порты 1540 (Manager), 1541 (Cluster) и диапазон 1560-1591 (Рабочие процессы). Для установки второй версии платформы нам потребуется назначить новые значения портов.
Разберем по шагам процесс создания второй службы в операционной системе Windows:
Для создания службы используем команду 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), иначе настройки одной версии перезапишут настройки другой, что приведет к неработоспособности обеих систем.
Выясним причину возможных конфликтов при работе с внешними соединениями. Система 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-сервисов.
Разберем, почему 1С:Бухгалтерия предприятия 3.0 требует перехода на 8.5. Начиная с определенных релизов (ориентировочно 3.0.198 и выше), разработчики 1С внедряют методы, доступные только в новом ядре платформы. При запуске такой конфигурации на старой платформе сработает проверка:
Если ПодключитьВнешнююКомпоненту("...") Тогда
// Логика, доступная только в 8.5
Иначе
ВызватьИсключение "Для работы данного релиза требуется платформа версии 8.5";
КонецЕсли;
После успешного запуска на новой платформе может потребоваться принудительное выполнение отложенного обновления информационной базы, чтобы завершить реструктуризацию данных.
Несмотря на использование новой платформы, большинство конфигураций первое время будут работать в режиме совместимости с предыдущими версиями (например, 8.3.24). Это означает, что технически сервер работает на движке 8.5, но программный интерфейс 1С:Предприятие эмулирует поведение старой версии для сохранения стабильности кода. Мы рекомендуем не отключать режим совместимости вручную, пока это не будет сделано в типовом решении от вендора.
В завершение проанализируем требования к инфраструктуре. Платформа 8.5 более требовательна к актуальности системных библиотек. Для стабильной работы мы рекомендуем:
Microsoft Visual C++ Redistributable, так как компоненты отрисовки интерфейса 8.5 активно используют эти библиотеки.