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

Стартер реализует функцию установки обновления ПО «Штрих-М: Кассир v.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 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 from to
Выполнение перемещения файла из from в to.
Перемещение всех файлов с расширением epf из каталога (каталог БД)\ExtFiles\LogicalModules в каталог (каталог БД)\ExtFiles\LogicalModules\tmp. Пример:

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

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

mv "{db}\Data.txt"

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

mv "C:\Temp"

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

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

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

1с conf /UpdateCfg