Как автоматизировать обновление платформы 1С на множестве компьютеров?

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

Ручное обновление платформы «1С:Предприятие» на большом количестве компьютеров — трудоемкая задача, подверженная ошибкам. Особенно актуальной она становится в инфраструктурах с множеством терминальных серверов (RDP) или виртуальных машин, где требуется поддерживать одинаковую версию платформы для всех пользователей. В этой статье мы разберем основные способы централизованного обновления и удаления старых версий платформы 1С, основанные на обсуждении и лучших практиках.

Проанализируем ситуацию: имеется сервер 1С и около 20 отдельных виртуальных машин, к которым пользователи подключаются по RDP. На каждой машине установлена своя копия платформы, и при выходе нового релиза приходится вручную удалять старую версию и устанавливать новую. Основная цель — найти способ автоматизировать этот процесс.

Рассмотрим несколько подходов, от штатных механизмов платформы до стандартных инструментов системного администрирования.

Решение 1: Использование штатных механизмов «1С:Предприятие»

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

Публикация дистрибутива на сервере 1С

Этот способ идеально подходит для клиент-серверной архитектуры. Сервер 1С может самостоятельно сообщать клиентам о необходимости обновления и предоставлять им дистрибутив. Для этого используется свойство кластера PublishDistributiveLocationWindows.

Разберем по шагам, как это настроить:

  1. Подготовка дистрибутива. Скачайте с портала ИТС необходимую версию платформы в виде MSI-установщика (например, windows64full.msi).
  2. Создание сетевой папки. Создайте на сервере или любом другом доступном по сети ресурсе папку, куда будет помещен дистрибутив. Важно: пользователь, от имени которого запущена служба сервера 1С (обычно usr1cv8), должен иметь права на чтение из этой папки.
  3. Настройка кластера. Помимо установки лицензий на сервер, указать путь к дистрибутиву можно двумя способами:
    • Через консоль администрирования серверов 1С: откройте свойства кластера, перейдите на вкладку «Дополнительно» и в поле «Каталог дистрибутивов Windows» укажите UNC-путь к вашей сетевой папке (например, \\server\distr\1c).
    • Через утилиту командной строки rac: выполните команду, указав имя кластера и путь.

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

Раздача клиента через веб-сервер

Если ваши информационные базы опубликованы на веб-сервере (IIS или Apache), вы можете настроить автоматическое обновление через него. Этот метод особенно удобен для пользователей, работающих через браузер или тонкий клиент, подключающийся по HTTP/HTTPS.

Процесс настройки:

  1. Подготовка дистрибутива. Вам понадобится специальный дистрибутив для публикации на веб-сервере. Обычно это ZIP-архив, содержащий необходимые файлы (например, 1c-client.zip).
  2. Публикация. При публикации информационной базы через конфигуратор или утилиту webinst, укажите опцию публикации дистрибутива и путь к ZIP-архиву.

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

Решение 2: Инструменты системного администрирования

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

Использование групповых политик Active Directory (GPO)

GPO — это мощный и надежный инструмент для управления конфигурациями компьютеров в домене Windows. С его помощью можно массово изменять настройки подключения и назначать установку программ.

Рассмотрим алгоритм действий:

  1. Подготовка точки распространения. Создайте сетевую папку, доступную для чтения всем компьютерам домена. Поместите в нее MSI-установщик платформы 1С.
  2. Создание объекта GPO. В консоли «Управление групповой политикой» создайте новый объект GPO и привяжите его к подразделению (OU), в котором находятся целевые компьютеры.
  3. Настройка установки ПО. В редакторе GPO перейдите в раздел Конфигурация компьютера -> Политики -> Конфигурация программ -> Установка программ. Создайте новый пакет, указав UNC-путь к вашему MSI-файлу. Выберите тип развертывания «Назначенный» (Assigned). Это означает, что ПО будет установлено автоматически при следующей загрузке компьютера.
  4. Управление обновлениями. Для обновления версии платформы вы можете создать новый пакет в той же политике и указать, что он должен обновить существующий пакет. Система автоматически удалит старую версию и установит новую.
  5. Настройка параметров. При необходимости можно использовать файлы трансформации (.mst) для настройки параметров установки (например, язык интерфейса, устанавливаемые компоненты).

Важно: установка через GPO происходит от имени системы (SYSTEM), что решает проблемы с правами пользователей на установку программ.

Автоматизация с помощью скриптов PowerShell

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

Примерная логика такого скрипта:

  1. Определение целевой версии. Скрипт должен знать, какая версия платформы является актуальной. Эту информацию можно хранить в текстовом файле в сетевой папке.
  2. Проверка установленной версии. Скрипт проверяет на локальной машине, какие версии 1С уже установлены. Это можно сделать, проанализировав ветки реестра или папки в Program Files.
  3. Удаление старых версий. Если установлены устаревшие версии, скрипт должен их корректно удалить. Для этого используется команда msiexec с ключом /x и кодом продукта (ProductCode) старой версии.
    
    # Пример команды для тихого удаления
    msiexec /x {PRODUCT-CODE-GUID} /qn
    
  4. Установка новой версии. После очистки запускается тихая установка новой версии из сетевой папки (для ОС Linux можно использовать сценарий обновления платформы).
    
    # Пример команды для тихой установки
    msiexec /i "\\server\distr\1c\windows64full.msi" /qn
    
  5. Логирование. Обязательно добавьте в скрипт запись логов, чтобы отслеживать, на каких машинах обновление прошло успешно, а где возникли ошибки.

Запускать такие скрипты можно разными способами: через планировщик заданий, как logon/startup скрипты через GPO или с помощью систем управления конфигурациями (Ansible, SCCM).

Решение 3: Централизованный запуск из сетевой папки

Этот метод был предложен в обсуждении как один из вариантов. Его суть в том, чтобы не устанавливать платформу на каждый компьютер, а разместить ее в одной общей сетевой папке и запускать оттуда.

Как это работает:

  1. Платформа 1С устанавливается на один компьютер.
  2. Вся папка с установленной версией (например, C:\Program Files\1cv8\8.3.26.1521) копируется в общую сетевую папку.
  3. На рабочих столах пользователей создаются ярлыки, которые указывают непосредственно на исполняемый файл (1cv8c.exe или 1cv8.exe) в этой сетевой папке.

Плюсы этого подхода:

Однако у этого метода есть серьезные минусы:

Этот способ можно рассматривать как временное или экстренное решение, но для постоянной работы в производственной среде он не рекомендуется.

В итоге, выбор способа автоматизации зависит от вашей IT-инфраструктуры. Для доменных сетей стандартным решением является GPO. В клиент-серверной архитектуре 1С наиболее правильным будет использование встроенного механизма раздачи дистрибутивов через сервер 1С. PowerShell-скрипты предоставляют максимальную гибкость для нестандартных сценариев.

← На главную