Как автоматизировать обновление тонких клиентов 1С на большом количестве серверов

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

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

Использование штатного механизма обновления через веб-сервер

Одним из самых эффективных способов является использование возможностей веб-публикации. Рассмотрим подробнее, как заставить тонкий клиент самостоятельно скачивать нужную версию платформы с веб-сервера (IIS или Apache). Для этого нам не нужно заходить в каждую базу на стороне пользователя. Достаточно один раз настроить файл публикации default.vrd.

Проанализируем структуру файла default.vrd. В нем существует специальный раздел <extinfo>, в котором можно указать атрибут distributiveLocation. Этот атрибут должен содержать URL-адрес папки на веб-сервере, где лежат подготовленные дистрибутивы.

Важно соблюдать структуру размещения файлов на сервере. Разберем по шагам, что именно ожидает увидеть платформа 1С:

  1. На веб-сервере создается папка (например, /distr), которую можно превратить в полноценный центр доставки обновлений.
  2. В этой папке создаются подпапки с именами версий платформы (например, 8.3.22.1709).
  3. Внутри папки с версией должны находиться ZIP-архивы с конкретными именами: winst32.zip для 32-битных систем и winst64.zip для 64-битных систем.

Пример настройки в файле default.vrd:


<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
       xmlns:xs="http://www.w3.org/2001/XMLSchema"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       base="/MyBase">
    <ws>
        <point name="CommonStorage" alias="commonstorage.1cws"/>
    </ws>
    <extinfo base="/MyBase" distributiveLocation="http://my-web-server/distr"/>
</point>

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

Глобальная настройка путей через conf.cfg

Если в вашей организации базы запускаются не только через веб, но и по локальной сети, полезно будет настроить файл конфигурации платформы conf.cfg. Выясним, как этот файл помогает централизованно управлять поиском обновлений.

Файл conf.cfg обычно располагается в папке C:\Program Files\1cv8\conf. В нем можно задать параметр DistributiveLocation. В отличие от настройки в конкретной базе, этот параметр является глобальным для всех баз, запускаемых на данном компьютере.

Рассмотрим пример содержимого conf.cfg:


ConfLocation=C:\Program Files\1cv8\conf
DistributiveLocation=\\Server-Main\1C_Distr
SystemLanguage=ru

В данном примере мы указали сетевой путь (UNC-путь) к общему хранилищу дистрибутивов. Теперь при несовпадении версий 1С будет искать инсталлятор в папке \\Server-Main\1C_Distr. Это избавляет от необходимости прописывать путь обновления в свойствах каждой информационной базы в списке 1CEStart.

Автоматизация подготовки дистрибутивов с помощью OneScript

Одной из самых раздражающих задач является ручная подготовка архивов (преобразование из формата ИТС в нужный для платформы ZIP). Для решения этой проблемы проанализируем возможности OneScript — скриптового движка на языке 1С, изучив примеры полезных скриптов.

Существуют готовые библиотеки, такие как v8-downloader, которые позволяют полностью автоматизировать процесс скачивания. Мы можем написать скрипт, который будет выполнять следующие действия:

  1. Авторизоваться на портале 1С:ИТС под вашими учетными данными.
  2. Проверять наличие новых релизов платформы.
  3. Скачивать дистрибутив тонкого клиента нужной разрядности.
  4. Автоматически извлекать содержимое из скачанного RAR или EXE и упаковывать его в winst64.zip.
  5. Копировать полученный файл в нужную папку на веб-сервере или в сетевую шару.

Посмотрим на примерный алгоритм такого скрипта на OneScript:


// Пример логики скрипта
Версия = "8.3.23.1865";
КаталогНазначения = "\\Web-Server\distr\" + Версия;
СоздатьКаталог(КаталогНазначения);

// Вызов внешней утилиты скачивания (например, v8-downloader)
ЗапуститьСистему("v8-downloader.exe --version " + Версия + " --type thin.client --out " + КаталогНазначения);

// Перепаковка в ZIP
ЗапуститьСистему("7z.exe a " + КаталогНазначения + "\winst64.zip " + КаталогНазначения + "\*");

Административная установка и групповые политики (GPO)

Для системных администраторов, работающих в доменной среде Windows, разберем метод административного образа. Это наиболее надежный способ при управлении 50+ серверами или рабочими станциями.

Сначала необходимо создать административный образ платформы (для систем на базе Linux можно использовать автоматизацию на Python). Для этого запустим инсталлятор с ключом /a:

setup.exe /a

В процессе установки программа спросит путь, куда развернуть образ. Укажите общую сетевую папку. В итоге в этой папке будет лежать распакованная платформа и MSI-пакеты.

Далее мы можем использовать Group Policy Object (GPO) для автоматической установки этого MSI-пакета на все целевые серверы. При выходе новой версии вы просто обновляете административный образ в сети и меняете версию в политике — при следующей перезагрузке (или по расписанию) сервера сами обновят версию тонкого клиента.

Также не стоит забывать про файл 1CEStart.cfg, который находится в профиле пользователя или в общей папке платформы. Используя параметр CommonCfgLocation, мы можем указать путь к единому конфигурационному файлу для всей сети, где будут прописаны актуальные пути к дистрибутивам.

Заключение

Мы проанализировали несколько уровней автоматизации: от простых настроек веб-публикации до использования скриптов OneScript и групповых политик. Выбор метода зависит от ваших полномочий и архитектуры сети. Сочетание автоматического скачивания через v8-downloader и раздачи через distributiveLocation в default.vrd позволяет полностью исключить ручной труд при обновлении тонких клиентов 1С в инфраструктурах любого масштаба.

← На главную