Установка обновлений ПО в автоматическом режиме

Стартер реализует функцию установки обновления ПО «Кассир 5». Транспортировка пакета обновлений производится кассовым ПО. Инициирует процесс обновления кассовое ПО путём создания соответствующего семафора.

Сценарий обновления

Начальные условия.

Пакет обновления подготовлен в подкаталоге ExtFiles\SelfUpdate каталога базы данных кассового ПО

Создан семафор для начала процедуры обновления

Завершается сеанс 1С: Предприятия

Процесс обновления.

Создаётся бэкап

Устанавливается флаг начала выполнения сценария обновления

Стартер выполняет сценарий обновления

При успешном завершении сценария удаляется флаг

При ошибке производится откат на резервную копию

Бэкап создается в каталоге, указанном в настройках на вкладке Стартера «Дополнительно». Согласно флагу «Использовать архивацию при обновлении» (на той же вкладке) в каталоге будет создан либо архив BackUpForUpdat.zip либо подкаталог BackUpForUpdate с содержимым каталога БД.

Структура пакета обновления

Пакет обновления расположен в подкаталоге ExtFiles\SelfUpdate каталога базы данных кассового ПО.
Структура каталога следующая:

SelfUpdate

start.sem (обязательный)

update.run (обязательный)

StrtUpBeg.sem

start.sem - файл-семафор начала выполнения сценария, содержит текст: BEFORE_START. (создаётся кассиром)
update.run - исполняемый сценарий
StrtUpBeg.sem - файл содержит полный путь к новому стартеру, который должен быть заменен до выполнения сценария обновления (например, {updt}\CStart.exe)

Исполняемый сценарий update.run

Этот файл содержит инструкции для стартера, выполнение которых приведёт к обновлению ПО.
В сценарии обновления предусмотрена возможность использования шаблонов:
{updt} - каталог обновления (SelfUpdate)
{db} - каталог базы данных Кассира
Для включения логирования действий стартера при обновлении нужно запустить CStart.exe с параметром -d. Лог файлы будут записываться в каталог БД Кассира.
Доступные инструкции:

Копирование файлов (cp)

cp from to
Копирование файла или каталога из from в to
Копирование файла data.txt из подкаталога SelfUpdate в Extfiles каталога базы данных. Пример:

cp "{updt}\data.txt" "{db}\Extfiles"

Копирование каталога AddDir со всем содержимым (рекурсивно) из подкаталога SelfUpdate в Extfiles каталога базы данных. Пример:

cp "{updt}\AddDir" "{db}\Extfiles"

Копирование всех файлов из каталога AddDir из подкаталога SelfUpdate в Extfiles каталога базы данных. Пример:

cp "{updt}\AddDir\*.*" "{db}\Extfiles"

Перемещение файлов (mv)

mv from to
Выполнение перемещения файла из from в to.
Перемещение всех файлов с расширением epf из каталога (каталог БД)\ExtFiles\LogicalModules в каталог (каталог БД)\ExtFiles\LogicalModules\tmp. Пример:

mv "{db}\ExtFiles\LogicalModules\*.epf" "{db}\ExtFiles\LogicalModules\tmp"

Удаление файлов (rm)

rm path
Выполнение удаления файла или каталога path.
Удаление файла Data.txt в каталоге базы данных. Пример:

rm "{db}\Data.txt"

Удаление каталога C:\Temp. Пример:

rm "C:\Temp"

Выполенение команды системы (sh)

sh command arg1 arg2 ... argN
Выполнение команды системы. command - исполняемая команда. argX - аргументы
Выполнение командного файла awesome.cmd из каталога обновлений с параметрами /onlytest /autoclose. Пример:

run {updt}\awesome.cmd /onlytest /autoclose

Выполнение команд из файла (script)

script awesome.run
Выполнение набора скриптовых команд из файла
Выполнение скиртовых команд из файла awesome.run из каталога обновлений. Пример:

script {updt}\awesome.run

Архивирование файлов (zip)

zip src dst
Архивирование файла/каталога
Архивирование каталога {db}\ExtFiles\LogicalModules в {db}\arch\lm.zip. Пример:

zip {db}\ExtFiles\LogicalModules в {db}\arch\lm.zip

Запуск 1С:Предприятия (1c)

1c ent|conf param
Запуск 1С в режиме предприятия (ent) или конфигуратора (conf) со всеми атрибутами из конфигурации стартера и дополнительными параметрами, переданными в значении param.
Запуск 1С: Предприятия в режиме конфигуратора с параметрами из конфигурации стартера и дополнительным параметром запуска /UpdateCfg. Пример:

1с conf /UpdateCfg