При администрировании систем на базе «1С:Предприятия» одной из наиболее рутинных задач является обновление платформы на конечных рабочих станциях пользователей. Когда количество компьютеров превышает десяток, ручная установка на каждом рабочем месте становится неэффективной и отнимает много времени. К счастью, разработчики платформы и системные администраторы предусмотрели несколько удобных механизмов автоматизации этого процесса.
В этой статье мы подробно разберем четыре практических метода настройки автоматического обновления платформы 1С на клиентах: от современного обновления через веб-сервер до классических сценариев с использованием сетевых папок и групповых политик (GPO) в домене Windows. Также мы разберем новые возможности платформы, появившиеся в свежих релизах, которые позволяют сделать этот процесс незаметным для пользователей.
Среди администраторов 1С долгое время существовало заблуждение, что автоматическое обновление тонкого клиента по HTTP доступно исключительно на дорогостоящих лицензиях КОРП. На самом деле, начиная с версии платформы 8.3.15, компания «1С» предоставила эту возможность и владельцам обычных лицензий ПРОФ.
Суть метода заключается в том, что дистрибутивы тонкого клиента упаковываются в архив и выкладываются на веб-сервер (Apache или IIS). При подключении к базе тонкий клиент сверяет свою версию с версией сервера 1С. Если версии не совпадают, клиент автоматически скачивает нужный дистрибутив по HTTP/HTTPS и устанавливает его.
Рассмотрим по шагам, как настроить этот механизм:
conf.cfg на сервере 1С. В этом файле необходимо прописать пути к опубликованным на веб-сервере дистрибутивам с помощью специальных параметров.Пример заполнения конфигурационного файла conf.cfg:
PublishDistributiveLocationWindows64=http://web-server-name/1c_distrib/thin_x64.zip
PublishDistributiveLocationWindows32=http://web-server-name/1c_distrib/thin_x86.zip
В этом случае, обнаружив несоответствие версий, платформа сама обратится по указанному адресу, скачает zip-архив, распакует его во временную директорию и запустит обновление.
Важное улучшение в версии 1С 8.3.26: Ранее при обновлении через веб-сервер пользователю выдавалось интерактивное диалоговое окно с предложением начать обновление, что часто вызывало вопросы и панику у сотрудников. Начиная с версии 8.3.26, в платформе реализован полноценный «тихий» (бесконтактный) режим обновления по HTTP. Теперь процесс скачивания и установки новой версии проходит полностью в фоновом режиме, не отвлекая пользователя от работы. При необходимости срочного входа система просто предложит альтернативную кнопку «Открыть в браузере» (через веб-клиент), пока идет фоновая установка тонкого клиента.
Если в вашей организации нет развернутого домена Windows (Active Directory), но развернуть автоматическое обновление необходимо, можно воспользоваться стандартными возможностями программы запуска 1cestart. Для этого используется общий сетевой ресурс, к которому у всех пользователей есть права на чтение.
Проанализируем этот алгоритм:
\\Server-FS\1C_Distr) и откроем к ней доступ для всех пользователей сети.1cescmn.cfg (или отредактируем локальный 1cestart.cfg на компьютерах пользователей), указав в нем параметр DistributiveLocation.Пример содержимого файла настроек 1cestart.cfg на клиентском компьютере:
CommonCfgLocation=\\Server-FS\1C_Distr\1cescmn.cfg
DistributiveLocation=\\Server-FS\1C_Distr
При запуске 1С утилита 1cestart обратится к сетевой папке, проверит наличие более новой версии и при необходимости запустит процесс установки.
Однако при таком подходе часто возникают две проблемы: выбор правильной разрядности платформы (32 или 64 бита) и нехватка прав у локального пользователя на установку программ. Выясним, как решить эти сложности.
Управление разрядностью и компонентами:
Чтобы принудительно устанавливать только нужные компоненты нужной разрядности (например, только тонкий клиент 64-бит, игнорируя тяжелый толстый клиент и конфигуратор), в файле конфигурации 1cestart.cfg, расположенном в сетевой папке, можно прописать следующие параметры:
DefaultVersion=8.3;x86_64
InstallComponents=DESIGNERALLCLIENTS=0 THINCLIENT=1
Решение проблемы с правами локального администратора:
Поскольку у обычных пользователей на рабочих станциях зачастую заблокирована возможность установки ПО, запуск msi-пакета из сетевой папки завершится ошибкой доступа. Чтобы обойти это ограничение без Active Directory, можно настроить локальную групповую политику на компьютерах пользователей (или распространить этот параметр через ветку реестра Windows). Нам необходимо включить параметр AlwaysInstallElevated (Всегда устанавливать с повышенными правами).
Для этого выполним следующие действия:
gpedit.msc).После этого служба Windows Installer сможет успешно инсталлировать платформу 1С из сетевого каталога даже под учетной записью пользователя с ограниченными правами.
Если в вашей сети развернут домен под управлением Windows Server с Active Directory, то классический сценарий развертывания через GPO является самым надежным и профессиональным решением. В этом случае установка происходит на этапе загрузки операционной системы компьютера с правами учетной записи SYSTEM, что полностью исключает проблемы с правами доступа пользователей.
Разберем процесс настройки по шагам:
1CEnterprise 8.msi).\\domain.local\DFS\1C_Deploy\). Важно, чтобы у группы «Компьютеры домена» (Domain Computers) был доступ на чтение этой папки.gpmc.msc), создадим новый объект GPO и привяжем его к организационному подразделению (OU) с клиентскими компьютерами.1CEnterprise 8.msi.При очередной перезагрузке компьютеров операционная система автоматически установит указанную версию 1С. Старые версии платформы при этом могут оставаться на компьютерах (что полезно для работы с разными информационными базами) или автоматически удаляться средствами GPO при обновлении пакета.
Если стандартные средства платформы или операционной системы по каким-то причинам не подходят, можно рассмотреть альтернативные решения:
/qn для msi-пакетов) при включении компьютера или входе пользователя в систему.Пример простого скрипта на PowerShell для установки платформы в «тихом» режиме:
$msiPath = "\\Server-FS\1C_Distr\1CEnterprise 8.msi"
$arguments = "/i `"$msiPath`" /qn DESIGNERALLCLIENTS=0 THINCLIENT=1 THINCLIENTFILE=1"
Start-Process msiexec.exe -ArgumentList $arguments -Wait -NoNewWindow
Выбор конкретного метода автоматизации зависит от масштаба вашей сети, используемых лицензий (ПРОФ или КОРП) и наличия доменной инфраструктуры. Мы рекомендуем использовать обновление через HTTP-сервер для распределенных сетей без Active Directory и классический метод GPO для крупных корпоративных сетей. При необходимости развертывания обновлений на рабочих станциях под управлением Linux можно использовать сценарий для автоматизации обновления платформы на deb-based операционных системах.