Скрипты

Скрипт 1C:EDT CLI — это текстовый файл, содержащий команды 1C:EDT CLI и инструкции командной оболочки, который можно запустить с помощью опции -file и в который можно передать аргументы, доступные в скрипте как переменные $1, $2 и т.д. В простом случае скрипт содержит одну или несколько команд 1C:EDT CLI, исполняющихся последовательно. Обычно файлы скриптов имеют расширение .1cedtcli.

Загрузка скриптов

Поставляемые вместе с 1C:EDT скрипты загружаются автоматически. Их список можно получить командой script.

Загрузить внешние, не входящие в дистрибутив 1C:EDT скрипты, можно несколькими способами:

В обоих случаях из указанных каталогов будут загружены все файлы с расширением .1cedtcli. Именем скрипта будет имя его файла без расширения. Имя файла не должно содержать специальных символов.

Ловкий прием: Вы можете запретить автоматическую загрузку определенных скриптов. Для этого нужно написать плагин для 1C:EDT, который будет подключаться к точке расширения com.e1c.g5.v8.dt.cli.api.cliVerifier и реализовывать интерфейс com.e1c.g5.v8.dt.cli.api.ICliVerifier. Подробнее можно прочитать здесь.

Запуск скриптов

Скрипты можно запускать как обычные команды:

<имя скрипта> <аргумент1> <аргумент2> ...

Также с ними работает команда help.

Например, создайте файл hello.1cedtcli со следующим содержимым:

# Скрипт приветствует пользователя. 
# 
# Использование: 
#    hello "имя" 
# Аргументы: 
#    имя - имя пользователя. Если не задано, приветствует мир. 
# 
# Дополнительно скрипт распечатывает свое расположение. 

name = мир
if { $1 } {
   name = $1 
}

echo Привет, $name! 
echo Расположение скрипта: $0

Запустите 1C:EDT CLI в интерактивном режиме и загрузите этот скрипт:

1C:EDT> script --load "C:\Users\test\cli-scripts\hello.1cedtcli" 
hello

Вывод hello выше означает, что скрипт успешно загружен. Теперь вы можете получить по нему справку:

1C:EDT> help hello 
Скрипт приветствует пользователя. 

Использование: 
   hello "имя" 
Аргументы: 
   имя - имя пользователя. Если не задано, приветствует мир. 

Дополнительно скрипт распечатывает свое расположение.

Также вы можете запустить его как обычную команду в интерактивном режиме.

1C:EDT> hello 
Привет, мир! 
Расположение скрипта: C:\Users\test\cli-scripts\hello.1cedtcli 
1C:EDT> hello Иван 
Привет, Иван! 
Расположение скрипта: C:\Users\test\cli-scripts\hello.1cedtcli

Если вы хотите использовать этот скрипт в режиме выполнения одной команды, то вам нужно установить значение переменной окружения.

EDTCLI_SCRIPT_PATH=C:\Users\test\cli-scripts

При указании каталога будут загружены все скрипты из него. Также можно:

Теперь вы можете запустить скрипт в режиме выполнения одной команды.

1cedtcli -data C:\Users\test\workspace -command hello Иван

Также при помощи команды script -c/--content можно увидеть содержимое скрипта, его код.

Любой внешний, не входящий в дистрибутив скрипт, также можно запустить с помощью опции -file. Для этого не требуется прописывать его в переменной EDTCLI_SCRIPT_PATH.

1cedtcli -data C:\Users\test\workspace -file C:\Users\test\cli-scripts\hello.1cedtcli Иван

Поставка и тестирование скриптов

Вы можете включить свой скрипт в поставку 1C:EDT. Для этого нужно написать плагин для 1C:EDT, добавить в него файл скрипта и подключиться к точке расширения com.e1c.g5.v8.dt.cli.api.cliScript.

Также вы можете реализовать автоматическое тестирование поставляемых скриптов аналогично тому, как реализуются интеграционные тесты для команд.

Подробнее можно прочитать об этом здесь.