В чем отличие обычного установочного пакета 1С:Предприятие от MSI-файла с постфиксом _xp?

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

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

Аналогичная картина наблюдается и для полной версии платформы, где рядом со стандартным пакетом соседствует версия с суффиксом _xp, а также присутствуют специализированные файлы языковых трансформаций (например, 1049_xp.mst). Давайте подробно разберем, зачем разработчики из компании «1С» пошли на разделение дистрибутива, какие технические нюансы скрываются за этим решением и как правильно организовать развертывание платформы в корпоративной сети.

Назначение суффикса _xp в дистрибутивах 1С

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

Основной дистрибутив без суффикса _xp предназначен для установки на современные операционные системы, начиная с Windows 7 и Windows Server 2008 R2 и выше.

Рассмотрим подробнее технические аспекты, которые заставили разработчиков разделить единый дистрибутив на две независимые ветки сборки.

Технические причины разделения на два MSI-пакета

Создание отдельного MSI-пакета — это не просто маркетинговый ход или случайное дублирование файлов. Это вынужденная мера, обусловленная глубокими архитектурными различиями между старыми и новыми версиями ОС Windows. Выделим три ключевые технические причины:

1. Алгоритм хеширования цифровой подписи (SHA-256 против SHA-1)

Современные требования к безопасности диктуют использование стойких алгоритмов шифрования и хеширования. Начиная с платформы 8.3.14, все исполняемые файлы и пакеты установщика 1С по умолчанию подписываются цифровой подписью с алгоритмом хеширования SHA-256.

Проблема заключается в том, что Windows XP «из коробки» (без установки редких обновлений безопасности, которые сейчас практически невозможно получить по официальным каналам) не поддерживает проверку подписей SHA-256. При попытке запустить такой установщик операционная система блокирует его выполнение, выдавая ошибку проверки цифровой подписи или целостности пакета. Пакеты с суффиксом _xp подписаны по старому стандарту SHA-1 (либо поставляются с отключенной строгой проверкой совместимости), что позволяет операционной системе успешно распознать и запустить инсталлятор.

2. Версия службы Windows Installer

В 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.

3. Компиляция под старые системные API и предотвращение падений

Это, пожалуй, наиболее важная техническая причина. При компиляции исполняемых файлов платформы (таких как 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.

Как ведет себя программа установки setup.exe

Проанализируем процесс интерактивной установки платформы 1С. При запуске файла setup.exe из общего каталога дистрибутива происходит следующее:

  1. Утилита setup.exe опрашивает операционную систему для определения ее версии.
  2. Если текущая ОС определяется как Windows 7, 8, 10, 11 или соответствующие серверные версии, программа установки запускает стандартный пакет 1CEnterprise 8.msi и применяет к нему языковую трансформацию (например, 1049.mst для русского языка).
  3. Если утилита обнаруживает, что установка выполняется в среде Windows XP или Windows Server 2003, она автоматически перенаправляет вызов на пакет 1CEnterprise 8_xp.msi с применением трансформации 1049_xp.mst.

Благодаря этому поведению рядовой пользователь при интерактивной установке даже не замечает технических сложностей и различий в пакетах.

Рекомендации по развертыванию для системных администраторов

Для ИТ-специалистов, которые занимаются автоматическим развертыванием программного обеспечения в корпоративной сети, наличие двух пакетов требует выработки определенной стратегии. Рассмотрим два основных сценария.

Сценарий 1. В сети отсутствуют компьютеры с Windows XP и Server 2003

Если ваша ИТ-инфраструктура полностью переведена на современные операционные системы (Windows 7/10/11, Windows Server 2012/2016/2019/2022), вы можете смело оптимизировать дистрибутив. Выясним, как это сделать:

Сценарий 2. В сети присутствуют компьютеры под управлением Windows XP

Если на предприятии все еще эксплуатируются устаревшие рабочие станции (например, управляющие технологическим оборудованием или кассовыми узлами), администратору потребуется настроить раздельное развертывание через групповые политики (GPO) в Active Directory.

Для реализации этой задачи выполним следующие шаги:

  1. Создадим в Active Directory две разные группы компьютеров или применим WMI-фильтрацию для разделения целевых машин.
  2. Настроим первый пакет GPO для современных систем. В качестве источника укажем стандартный файл 1CEnterprise 8.msi и файл трансформации локализации 1049.mst.
  3. Настроим второй пакет GPO, нацеленный исключительно на компьютеры с Windows XP. В качестве источника укажем 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"

Критическое аппаратное ограничение (инструкции SSE2)

В заключение проанализируем важное ограничение, о котором часто забывают. Использование специального совместимого пакета 1CEnterprise 8_xp.msi решает проблемы совместимости на уровне операционной системы, но оно не способно обойти аппаратные ограничения процессора.

Начиная с версии платформы 8.3, для работы системы «1С:Предприятие» критически важно наличие поддержки процессором инструкций SSE2. Если вы попытаетесь запустить платформу (даже успешно установленную через пакет _xp) на сверхстаром компьютере с процессором уровня AMD Athlon XP (на ядре Barton/Thoroughbred) или Intel Pentium III, программа мгновенно закроется при старте без вывода каких-либо предупреждений или записей в журнал регистрации.

Решением в данном случае может быть только модернизация аппаратной части компьютера или запуск 1С в режиме терминального клиента (RDP) на современном сервере.

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

← На главную