При развертывании и обновлении платформы «1С:Предприятие» версии 8.3.14, 8.3.15 и более поздних релизов системные администраторы часто обращают внимание на дублирование установочных файлов в дистрибутиве. В частности, в составе дистрибутива тонкого клиента присутствуют два очень похожих файла:
1CEnterprise 8 Thin client (x86-64).msi1CEnterprise 8_xp Thin client (x86-64).msiАналогичная картина наблюдается и для полной версии платформы, где рядом со стандартным пакетом соседствует версия с суффиксом _xp, а также присутствуют специализированные файлы языковых трансформаций (например, 1049_xp.mst). Давайте подробно разберем, зачем разработчики из компании «1С» пошли на разделение дистрибутива, какие технические нюансы скрываются за этим решением и как правильно организовать развертывание платформы в корпоративной сети.
Догадка системных администраторов и участников форума абсолютно верна: суффикс _xp указывает на то, что данный установочный пакет подготовлен специально для обеспечения совместимости с устаревшими операционными системами семейства Windows. К ним относятся:
Основной дистрибутив без суффикса _xp предназначен для установки на современные операционные системы, начиная с Windows 7 и Windows Server 2008 R2 и выше.
Рассмотрим подробнее технические аспекты, которые заставили разработчиков разделить единый дистрибутив на две независимые ветки сборки.
Создание отдельного MSI-пакета — это не просто маркетинговый ход или случайное дублирование файлов. Это вынужденная мера, обусловленная глубокими архитектурными различиями между старыми и новыми версиями ОС Windows. Выделим три ключевые технические причины:
Современные требования к безопасности диктуют использование стойких алгоритмов шифрования и хеширования. Начиная с платформы 8.3.14, все исполняемые файлы и пакеты установщика 1С по умолчанию подписываются цифровой подписью с алгоритмом хеширования SHA-256.
Проблема заключается в том, что Windows XP «из коробки» (без установки редких обновлений безопасности, которые сейчас практически невозможно получить по официальным каналам) не поддерживает проверку подписей SHA-256. При попытке запустить такой установщик операционная система блокирует его выполнение, выдавая ошибку проверки цифровой подписи или целостности пакета. Пакеты с суффиксом _xp подписаны по старому стандарту SHA-1 (либо поставляются с отключенной строгой проверкой совместимости), что позволяет операционной системе успешно распознать и запустить инсталлятор.
В Windows XP интегрирована устаревшая версия службы установщика Windows (MSI-движок версий 3.1 или 4.5). База данных современных MSI-пакетов 1С оптимизирована под новые возможности MSI-движка версии 5.0, который появился в Windows 7.
Использование новых таблиц, нестандартных действий (Custom Actions) и сложных схем валидации в стандартном пакете 1CEnterprise 8.msi приводит к тому, что старая служба Windows Installer на Windows XP завершает работу аварийно еще на этапе разбора структуры базы данных установщика. Специализированный пакет _xp.msi собран по упрощенной схеме метаданных, совместимой со старыми версиями службы MSI.
Это, пожалуй, наиболее важная техническая причина. При компиляции исполняемых файлов платформы (таких как 1cv8.exe, 1cv8c.exe) под современные ОС используются новые компиляторы и библиотеки среды выполнения (C++ Runtime), ориентированные на вызовы API, которые появились только в Windows Vista и Windows 7.
Если запустить обычную платформу на Windows XP, исполняемый файл попытается обратиться к несуществующим системным функциям ядра Windows (например, в библиотеках kernel32.dll или ntdll.dll). В результате пользователь увидит критическое падение программы с ошибкой:
unknown software exception (0x40000015)
Для предотвращения этой проблемы исполняемые файлы, упакованные внутри 1CEnterprise 8_xp.msi, компилируются со специальными флагами совместимости в среде MSVC. Они используют старый набор системных вызовов и совместимые версии статических библиотек runtime, что гарантирует стабильную работу платформы на Windows XP.
Проанализируем процесс интерактивной установки платформы 1С. При запуске файла setup.exe из общего каталога дистрибутива происходит следующее:
setup.exe опрашивает операционную систему для определения ее версии.1CEnterprise 8.msi и применяет к нему языковую трансформацию (например, 1049.mst для русского языка).1CEnterprise 8_xp.msi с применением трансформации 1049_xp.mst.Благодаря этому поведению рядовой пользователь при интерактивной установке даже не замечает технических сложностей и различий в пакетах.
Для ИТ-специалистов, которые занимаются автоматическим развертыванием программного обеспечения в корпоративной сети, наличие двух пакетов требует выработки определенной стратегии. Рассмотрим два основных сценария.
Если ваша ИТ-инфраструктура полностью переведена на современные операционные системы (Windows 7/10/11, Windows Server 2012/2016/2019/2022), вы можете смело оптимизировать дистрибутив. Выясним, как это сделать:
_xp (включая *.msi и *.mst).Если на предприятии все еще эксплуатируются устаревшие рабочие станции (например, управляющие технологическим оборудованием или кассовыми узлами), администратору потребуется настроить раздельное развертывание через групповые политики (GPO) в Active Directory.
Для реализации этой задачи выполним следующие шаги:
1CEnterprise 8.msi и файл трансформации локализации 1049.mst.1CEnterprise 8_xp.msi и файл трансформации 1049_xp.mst.Для фильтрации политик по версии ОС рекомендуем использовать следующие WMI-запросы:
Для Windows XP (32-бит):
select * from Win32_OperatingSystem where Version like "5.1%" and ProductType = "1"
Для современных ОС (Windows 7 и выше):
select * from Win32_OperatingSystem where Version >= "6.1"
В заключение проанализируем важное ограничение, о котором часто забывают. Использование специального совместимого пакета 1CEnterprise 8_xp.msi решает проблемы совместимости на уровне операционной системы, но оно не способно обойти аппаратные ограничения процессора.
Начиная с версии платформы 8.3, для работы системы «1С:Предприятие» критически важно наличие поддержки процессором инструкций SSE2. Если вы попытаетесь запустить платформу (даже успешно установленную через пакет _xp) на сверхстаром компьютере с процессором уровня AMD Athlon XP (на ядре Barton/Thoroughbred) или Intel Pentium III, программа мгновенно закроется при старте без вывода каких-либо предупреждений или записей в журнал регистрации.
Решением в данном случае может быть только модернизация аппаратной части компьютера или запуск 1С в режиме терминального клиента (RDP) на современном сервере.
Таким образом, мы детально разобрали назначение установочных файлов с суффиксом _xp. Знание этих нюансов позволит вам более гибко управлять дистрибутивами 1С и избежать досадных ошибок при развертывании платформы в гетерогенных корпоративных сетях.