При обслуживании крупной инфраструктуры 1С, включающей десятки серверов и сотни информационных баз, ручное обновление тонких клиентов превращается в трудоемкую и рутинную задачу. Постоянное скачивание дистрибутивов, перепаковка из RAR в ZIP и прописывание путей обновления в каждой базе вручную отнимают часы рабочего времени. В этой статье мы разберем системные подходы к автоматизации этого процесса, которые позволяют минимизировать ручной труд и обеспечить бесперебойную работу пользователей.
Одним из самых эффективных способов является использование возможностей веб-публикации. Рассмотрим подробнее, как заставить тонкий клиент самостоятельно скачивать нужную версию платформы с веб-сервера (IIS или Apache). Для этого нам не нужно заходить в каждую базу на стороне пользователя. Достаточно один раз настроить файл публикации default.vrd.
Проанализируем структуру файла default.vrd. В нем существует специальный раздел <extinfo>, в котором можно указать атрибут distributiveLocation. Этот атрибут должен содержать URL-адрес папки на веб-сервере, где лежат подготовленные дистрибутивы.
Важно соблюдать структуру размещения файлов на сервере. Разберем по шагам, что именно ожидает увидеть платформа 1С:
/distr), которую можно превратить в полноценный центр доставки обновлений.8.3.22.1709).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 обычно располагается в папке 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.
Одной из самых раздражающих задач является ручная подготовка архивов (преобразование из формата ИТС в нужный для платформы ZIP). Для решения этой проблемы проанализируем возможности OneScript — скриптового движка на языке 1С, изучив примеры полезных скриптов.
Существуют готовые библиотеки, такие как v8-downloader, которые позволяют полностью автоматизировать процесс скачивания. Мы можем написать скрипт, который будет выполнять следующие действия:
RAR или EXE и упаковывать его в winst64.zip.Посмотрим на примерный алгоритм такого скрипта на OneScript:
// Пример логики скрипта
Версия = "8.3.23.1865";
КаталогНазначения = "\\Web-Server\distr\" + Версия;
СоздатьКаталог(КаталогНазначения);
// Вызов внешней утилиты скачивания (например, v8-downloader)
ЗапуститьСистему("v8-downloader.exe --version " + Версия + " --type thin.client --out " + КаталогНазначения);
// Перепаковка в ZIP
ЗапуститьСистему("7z.exe a " + КаталогНазначения + "\winst64.zip " + КаталогНазначения + "\*");
Для системных администраторов, работающих в доменной среде Windows, разберем метод административного образа. Это наиболее надежный способ при управлении 50+ серверами или рабочими станциями.
Сначала необходимо создать административный образ платформы (для систем на базе Linux можно использовать автоматизацию на Python). Для этого запустим инсталлятор с ключом /a:
setup.exe /a
В процессе установки программа спросит путь, куда развернуть образ. Укажите общую сетевую папку. В итоге в этой папке будет лежать распакованная платформа и MSI-пакеты.
Далее мы можем использовать Group Policy Object (GPO) для автоматической установки этого MSI-пакета на все целевые серверы. При выходе новой версии вы просто обновляете административный образ в сети и меняете версию в политике — при следующей перезагрузке (или по расписанию) сервера сами обновят версию тонкого клиента.
Также не стоит забывать про файл 1CEStart.cfg, который находится в профиле пользователя или в общей папке платформы. Используя параметр CommonCfgLocation, мы можем указать путь к единому конфигурационному файлу для всей сети, где будут прописаны актуальные пути к дистрибутивам.
Мы проанализировали несколько уровней автоматизации: от простых настроек веб-публикации до использования скриптов OneScript и групповых политик. Выбор метода зависит от ваших полномочий и архитектуры сети. Сочетание автоматического скачивания через v8-downloader и раздачи через distributiveLocation в default.vrd позволяет полностью исключить ручной труд при обновлении тонких клиентов 1С в инфраструктурах любого масштаба.