Интерфейс командной строки 1C:EDT (1C:EDT CLI)

Предупреждение: Интерфейс командной строки 1C:EDT CLI не следует использовать с рабочими областями, созданными версиями 1C:EDT, младше чем 2023.1.0.
Возможная проблема: Для использования 1C:EDT CLI нужно обладать правами администратора.
Приложение для запуска 1C:EDT CLI:

Приложение находится в каталоге исполняемых файлов 1C:EDT.

Возможная проблема: Первый запуск 1C:EDT CLI может занять около 25 секунд.
Существует четыре режима запуска интерфейса:

Опции

Опции командной строки можно указывать в любом порядке, кроме:
  • -command — эта опция должна быть последней, так как все, что идет после нее, трактуется как команда;
  • -vmargs — эта опция должна идти перед -command (либо быть последней, если -command не используется), так как все, что идет после нее и до -command трактуется как аргументы JVM.

Можно использовать следующие опции:

Справочный режим

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

1cedtcli
В результате в интерпретаторе командной строки вы увидите приглашение 1C:EDT>. После этого можно вводить ограниченный набор команд:
  • cd — отображает или изменяет текущий рабочий каталог;
  • exit — выйти из интерактивного режима командной строки.
  • help — выводит список доступных команд или кодов возврата.
  • install-platform-support — устанавливает поддержку платформы «1С:Предприятие» указанной версии.
  • platform-versions — сообщает список версий платформы «1С:Предприятие», которые поддерживаются данной средой разработки.
  • uninstall-platform-support — удаляет поддержку платформы «1С:Предприятие» указанной версии.
  • version — выводит версию 1С:EDT или список установленных компонентов с версиями или версию выбранного компонента.

Интерактивный режим

Чтобы запустить 1C:EDT CLI в интерактивном режиме, после 1cedtcli укажите опцию -data — расположение рабочей области. Например:

1cedtcli -data D:\projects\МойПроект 

В результате в интерпретаторе командной строки вы увидите приглашение 1C:EDT>. После этого можно вводить команды 1C:EDT CLI.

Выполнение одной команды

Чтобы выполнить одну команду, после 1cedtcli укажите:
  1. Опцию -data — расположение рабочей области и
  2. Опцию -command — выполняемую команду вместе с ее аргументами.
Например:
1cedtcli -data D:\projects\МойПроект -command clean-up-source --project-name Демо_EDT
Возможная проблема: В значениях опций и путей могут встречаться пробелы. Например, в имени каталога. В этом случае обрамляйте значение тремя двойными кавычками. Например, значение аргумента --project:
"C:\Program Files\1C\1CE\components\1c-edt-2023.3.6+33-x86_64\1cedtcli.exe" -data "D:\Workspace" -command import --project """D:\Dev A_work\DemoEDT"""

Выполнение последовательности команд

Для выполнения последовательности команд можно использовать скрипты. Подробнее о скриптах читайте здесь.

Команды

build
Очищает и пересобирает все или некоторые проекты. Является аналогом интерактивной команды Проект > Очистить.... Имеет один необязательный аргумент:
  • --yes — если этот аргумент имеет значение true или значение не указано, то 1C:EDT пересобирает все проекты, находящиеся в рабочей области.
    build --yes
    Если этот аргумент имеет значение false или этот аргумент не указан, то будет запрошено подтверждение пересборки всех проектов:
    1C:EDT> build
    Пожалуйста, подтвердите сборку следующих проектов:
      pr24
      pr24.ВесТоваров
      pr24.Колонтитулы
    Действительно собрать? (y/n; по умолчанию=n)
    Если после этого аргумента перечислены имена проектов, то будут пересобраны только эти проекты:
    build --yes [pr24 pr24.Колонтитулы]
cd
Отображает или изменяет текущий рабочий каталог. Имеет один необязательный аргумент:
  • "строка" — каталог, который нужно установить в качестве текущего рабочего. Если этот аргумент указан, то команда меняет текущий рабочий каталог на указанный:
    cd /path/to/new/working/directory
    Если аргумент пропущен, то команда выводит текущий рабочий каталог:
    cd
clean-up-source

Оптимизирует формат хранения данных проекта. Имеет следующие аргументы:

  • Один из следующих обязательных аргументов:
    • --project — путь к каталогу проекта 1C:EDT, формат хранения данных которого нужно оптимизировать.
      Если этот проект не импортирован в рабочую область, переданную в параметре -data, то перед оптимизацией формата хранения данных проекта будет выполнен импорт этого проекта в рабочую область;
    • --project-name — имя проекта 1C:EDT, формат хранения данных которого нужно оптимизировать;
  • --include-full-support-objects — необязательный аргумент. Если этот аргумент имеет значение true, то будут оптимизированы все объекты, включая те, которые находятся на полной поддержке. После такой оптимизации потребуется полная загрузка конфигурации в информационную базу.
Например:
clean-up-source --project-name Демо_EDT --include-full-support-objects true
delete
Удаляет все или некоторые проекты. Имеет один необязательный аргумент:
  • --yes — если этот аргумент имеет значение true или значение не указано, то 1C:EDT удаляет все проекты, находящиеся в рабочей области.
    delete --yes
    Если этот аргумент имеет значение false или этот аргумент не указан, то будет запрошено подтверждение удаления всех проектов:
    1C:EDT> delete
    Пожалуйста, подтвердите удаление следующих проектов:
      pr24
      pr24.ВесТоваров
      pr24.Колонтитулы
    Действительно удалить? (y/n; по умолчанию=n)
    Если после этого аргумента перечислены имена проектов, то будут удалены только эти проекты:
    delete --yes [pr24 pr24.Колонтитулы]
exit

Выйти из интерактивного режима командной строки. Имеет необязательные аргументы:

  • --yes — если этот аргумент имеет значение true или значение не указано, то выход будет без подтверждения.
    exit --yes
    Если этот аргумент имеет значение false или этот аргумент не указан, то будет запрошено подтверждение выхода:
    1C:EDT> exit
    Вы действительно хотите выйти? (y/n; по умолчанию=y)
  • --status — код возврата;
export

Экспортирует проект 1C:EDT в .xml-файлы конфигурации. Имеет следующие аргументы:

  • Один из следующих обязательных аргументов:
    • --project — путь к каталогу проекта 1C:EDT, который нужно экспортировать.
      Если этот проект не импортирован в рабочую область, переданную в параметре -data, то перед экспортом проекта в .xml-файлы конфигурации будет выполнен импорт этого проекта в рабочую область;
    • --project-name — имя проекта 1C:EDT, который нужно экспортировать;
  • --configuration-files — обязательный аргумент. Каталог, в который следует поместить .xml-файлы конфигурации;
Например:
export --project D:\Демо_EDT --configuration-files D:\xml-files
format-modules
Форматирует все модули встроенного языка в соответствии с настройками форматирования. Имеет один из следующих обязательных аргументов:
  • --project — путь к каталогу проекта 1C:EDT. Если этот проект не импортирован в рабочую область, переданную в опции -data, то перед форматированием модулей будет выполнен импорт этого проекта в рабочую область.
    format-modules --project D:\Демо_EDT
  • --project-name — имя проекта 1C:EDT, модули которого нужно отформатировать.
    format-modules --project-name Демо_EDT
help

Выводит список доступных команд или кодов возврата. Имеет необязательный аргумент:

  • --status-codes — вместо команд 1С:EDT CLI отображает список общих кодов состояний (возвратов).

Например, чтобы получить список доступных команд:

help

Чтобы получить список кодов возврата:

help --status-codes
Чтобы получить справку по конкретной команде, введите ее имя после help. Например:
help install-platform-support
import
  1. Импортирует проект 1C:EDT в рабочую область. Имеет обязательный аргумент:
    • --project — путь к каталогу проекта 1C:EDT, который нужно импортировать;
    Например:
    import --project D:\Демо_EDT
  2. Импортирует .xml-файлы конфигурации в проект 1C:EDT. Имеет следующие аргументы:

    • --version — необязательный аргумент. Версия платформы «1С:Предприятия», которая будет назначена создаваемому проекту. Например, 8.3.22. Если версия не задана, то она будет определена по предоставленной версии .xml-файлов конфигурации;
    • --base-project-name — имя базового проекта. Допустимо только для проектов расширений или для проектов внешних отчетов и обработок;
    • --configuration-files — обязательный аргумент. Каталог, содержащий .xml-файлы конфигурации;
    • --build — если этот аргумент имеет значение true, то проект 1С:EDT запускается сразу после завершения импорта. Выполняется сборка объектов конфигурации и языковых модулей;
    • Один из следующих обязательных аргументов:
      • --project — путь к каталогу проекта 1C:EDT, в который следует импортировать .xml-файлы.
        Если каталог уже содержит какие-то файлы, то новые файлы будут добавлены к существующим.
        Если этот проект не импортирован в рабочую область, переданную в параметре -data, то перед импортом в него .xml-файлов конфигурации будет выполнен импорт этого проекта в рабочую область;
      • --project-name — имя проекта 1C:EDT, в который следует импортировать .xml-файлы. Если такой проект уже существует в рабочей области, переданной в параметре -data, то будет выдана ошибка.

    Например:

    import --configuration-files D:\xml-files --project D:\Демо_EDT
    import --base-project-name Демо_EDT --configuration-files D:\xml-files --project D:\Демо_EDT.ВесТоваров 
    import --version 8.3.24 --base-project-name Демо_EDT --configuration-files D:\xml-files --project D:\Демо_EDT.ВесТоваров 
infobase
Показывает список информационных баз и информацию о выбранных базах. Например, список баз:
1C:EDT> infobase
Информационная_база
Информационная_база_#1
Информационная_база_#2
Информационная_база_#4
Информационная_база_EDT
...
Имеет два необязательных аргумента:
  • --details — показывать подробности о базах, например:
    1C:EDT> infobase --details
    Имя: Информационная_база
    Соединение: File="C:\Users\User\Documents\InfoBase26";
    Имя: Информационная_база_#1
    Соединение: File="C:\Users\User\Documents\InfoBase104";
    Имя: Информационная_база_#2
    Соединение: File="C:\Users\User\Documents\InfoBase106";
    Имя: Информационная_база_#4
    Соединение: File="C:\Users\User\Documents\InfoBase5";
    Имя: Информационная_база_EDT
    Соединение: File="C:\Users\User\Documents\InfoBase110";
    ...
  • ["строка1" "строка2" "строка3"...] — названия выбранных баз. Показывать информацию только по выбранным базам, например:
    1C:EDT> infobase [Информационная_база_#1 Информационная_база_#4]
    Имя: Информационная_база_#1
    Соединение: File="C:\Users\User\Documents\InfoBase104";
    Имя: Информационная_база_#4
    Соединение: File="C:\Users\User\Documents\InfoBase5";
infobase-create
Создает информационную базу. Имеет следующие аргументы:
  • --name "строка" — обязательный аргумент. Название базы, например:
    infobase-create --name Моя_новая_база
    infobase-create --name "Моя новая база"
  • Необязательные аргументы:
    • --version "строка" — версия платформы. Если не установлено, используется последняя поддерживаемая платформа.
      infobase-create --name "Моя новая база 1" --version 8.3.27
    • --path "строка" — путь к создаваемой базе. Если не задано, создается временный каталог.
      infobase-create --name InfoBase44 --path D:/test/NewBase
    • --cf "строка" — путь к .cf-файлу, на основе которого будет создана база. Если не задано, создается пустая база.
      infobase-create --name issue555 --cf D:/bases/issue555/1Cv8.cf
infobase-delete
Удаляет одну или несколько информационных баз. Имеет следующие аргументы:
  • Один из следующих обязательных аргументов:
    • --name "строка" — название базы;
      infobase-delete --name InfoBase44
    • ["строка1" "строка2" "строка3"] — список баз;
      infobase-delete --name [InfoBase44 issue555]
  • --yes — необязательный аргумент. Если имеет значение true, то подтверждение удаления не запрашивается;
    infobase-delete --name InfoBase44 --yes true
  • --delete-content — необязательный аргумент. Если имеет значение true, то кроме записи в списке удаляется и сама база на диске.
    infobase-delete --name InfoBase44 --delete-content true
infobase-import
Импортирует информационную базу в проект. Имеет следующие аргументы:
  • --name "строка" — обязательный аргумент. Название базы;
  • --project "строка" — обязательный аргумент. Название проекта;
  • --build — необязательный аргумент. Если имеет значение true, то после импорта проект будет собран.
    infobase-import --name ДемоEDT27 --project ДемоEDT27 --build true
install-platform-support

Устанавливает поддержку платформы «1С:Предприятие» указанной версии. Имеет обязательный аргумент:

  • --version — версия платформы, поддержку которой нужно установить;
Например:
install-platform-support --version 8.3.10
platform-versions

Сообщает список версий платформы «1С:Предприятие», которые поддерживаются данной средой разработки. Например:

1C:EDT> platform-versions
8.3.21
8.3.22
8.3.23
8.3.24
project
Выводит информацию по всем или по нескольким проектам. Имеет один необязательный аргумент:
  • --details — если этот аргумент имеет значение true или значение не указано, то 1C:EDT выводит информацию по всем проектам, находящимся в рабочей области.
    1C:EDT> project --details
    Имя: pr24
    Содержимое: C:\Users\Test\AppData\Local\1C\1cedtstart\projects\pr24\pr24
    Имя: pr24.ВесТоваров
    Содержимое: C:\Users\Test\AppData\Local\1C\1cedtstart\projects\pr24\pr24.ВесТоваров
    Имя: pr24.Колонтитулы
    Содержимое: C:\Users\Test\AppData\Local\1C\1cedtstart\projects\pr24\pr24.Колонтитулы
    Если этот аргумент имеет значение false или этот аргумент не указан, то будет выведен простой список всех проектов:
    1C:EDT> project
    pr24
    pr24.ВесТоваров
    pr24.Колонтитулы
    Если после этого аргумента перечислены имена проектов, то будет показана информация только по этим проектам:
    project --details [pr24 pr24.Колонтитулы]
script
Выводит список доступных скриптов, показывает информацию о скрипте, загружает один или несколько скриптов.
  • Отображение списка доступных скриптов.
    1C:EDT> script
    my-script
  • Вывод информации о скрипте. Команда имеет следующие аргументы:
    • "строка" — обязательный аргумент. Имя скрипта.
      1C:EDT> script my-script
      Имя: ms:my-script
      Поставляемый: да
      Поставщик: com.e1c.g5.v8.dt.library
      Путь: script/my-script.1cedtcli
    • --content — необязательный аргумент. Если этот аргумент имеет значение true или значение не указано, то будет показано содержимое файла скрипта.
      1C:EDT> script my-script --content
      
      # Скрипт приветствует пользователя. 
      # 
      # Использование: 
      #    hello "имя" 
      # Аргументы: 
      #    имя - имя пользователя. Если не задано, приветствует мир. 
      # 
      # Дополнительно скрипт распечатывает свое расположение. 
      
      name = мир
      if { $1 } {
         name = $1 
      }
      
      echo Привет, $name! 
      echo Расположение скрипта: $0
  • Загрузка скриптов. Команда имеет следующие аргументы:
    • --load — обязательный аргумент. Либо скрипт для загрузки, либо каталог для загрузки скриптов.
      1C:EDT> script --load "C:\Users\test\cli-scripts\hello.1cedtcli" 
      hello
    • --recursive — необязательный аргумент. Если значение аргумента равно true или оно не указано, то при загрузке из каталога будут загружены скрипты из его подкаталогов тоже.
    • --namespace — необязательный аргумент. Пространство имен для загрузки новых скриптов. Если не задано, скрипты загружаются в текущее пространство имен по умолчанию.
sort-project

Сортирует объекты конфигурации в соответствии с настройками автоматической сортировки. Если автоматическая сортировка не была включена для проекта, будут установлены стандартные настройки автоматической сортировки, в соответствии с которыми объекты конфигурации будут отсортированы. Имеет один из следующих обязательных аргументов:

  • --project-list — список путей к каталогам проектов 1C:EDT, в которых будет выполнена сортировка. При этом обрабатываются все вложенные проекты.
    Если какой-то из этих проектов не импортирован в рабочую область, переданную в параметре -data, то перед сортировкой проекта будет выполнен импорт этого проекта в рабочую область;
  • --project-name-list — список имен проектов, ранее импортированных в рабочее пространство, которые будут отсортированы.

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

Например:

sort-project --project-list [D:\Демо_EDT D:\Демо_EDT.ВесТоваров]
sort-project --project-list D:\Демо_EDT
uninstall-platform-support

Удаляет поддержку платформы «1С:Предприятие» указанной версии. Имеет обязательный аргумент:

  • --version — версия платформы, поддержку которой нужно удалить;
Например:
uninstall-platform-support --version 8.3.10
validate

Проверяет проект и выводит результат в .tsv-файл. Имеет следующие аргументы:

  • --file — путь к .tsv-файлу, в который будут записаны результаты проверки. Если файл уже существует, то будет выдана ошибка;
  • Один из следующих обязательных аргументов:
    • --project-list — список путей к каталогам проектов 1C:EDT, в которых будет выполнена проверка.
      Если какой-то из этих проектов не импортирован в рабочую область, переданную в параметре -data, то перед проверкой проекта будет выполнен импорт этого проекта в рабочую область;
    • --project-name-list — список имен проектов, ранее импортированных в рабочую область, которые будут проверены.

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

Например:
validate --file D:\validation-result.tsv --project-list [D:\Демо_EDT D:\Демо_EDT.ВесТоваров]
validate --file D:\validation-result.tsv --project-list D:\Демо_EDT
version
Выводит версию 1С:EDT или список установленных компонентов с версиями или версию выбранного компонента.
Например, чтобы узнать версию 1С:EDT:
1C:EDT> version
2025.1.0.482
Команда имеет два необязательных аргумента:
  • --features — выводит список установленных компонентов и их версий. Например:
    1C:EDT> version --features
    com._1c.g5.v8.dt.testing, 5.20.0.v202505262100, pluginName
    com.company1c.link.ide.edt.feature, 4.0.3, 1С:Линк для EDT
    com.e1c.langtool.feature, 1.8.0.v202505262100, 1C:Language Tool UI plugin
    com.e1c.langtool.google.feature, 1.8.0.v202505262100, 1C:Language Tool UI plugin
    com.e1c.langtool.microsoft.feature, 1.8.0.v202505262100, 1C:Language Tool UI plugin
    com.e1c.langtool.v8.dt.feature, 1.8.0.v202505262100, 1C:Language Tool UI plugin
    com.e1c.langtool.yandex.feature, 1.8.0.v202505262100, 1C:Language Tool UI plugin
    com.e1c.ssl.feature, 0.7.0.v20250204-1048, 1C:SSL UI support for 1C:EDT
    com.e1c.v8codestyle.feature, 0.7.0.v20250526-2118, 1С:Стандарты разработки V8 Ядро
    org.eclipse.draw2d, 3.18.0.202311222042, GEF Classic Draw2d
    ...
  • "строка" — идентификатор компонента. Выводит версию компонента и информацию о его наличии (true/false). Например:
    1C:EDT> version org.eclipse.egit
    6.8.6.202504091953
    true
    Вместе с этим аргументом можно использовать аргумент --quiet, тогда будет выведена только информация о наличии компонента (true/false). Например, чтобы узнать, установлен ли плагин Language Tools:
    1C:EDT> version com.e1c.langtool.feature --quiet
    true

Код возврата

Перечислить все коды возврата не представляется возможным. Их слишком много, они приходят из разных источников. Далее приведены некоторые конкретные значения. Они не являются частью официально поддерживаемого публичного API и могут измениться в будущем/

Примечание: Чтобы получить актуальный список кодов возврата, используйте команду help --status-codes.

Если 1C:EDT CLI должен вернуть код возврата 23 или 24 (например потому, что его вернула выполняемая команда в режиме -command или последняя команда из последовательности команд в режиме -file), код возврата будет увеличен на 100, то есть вернется 123 или 124 соответственно. Это сделано потому, что 23 и 24 являются особыми кодами возврата Eclipse с собственной семантикой.

Собственные команды

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

Подробнее о разработке собственных команд командной строки можно прочитать здесь.

Для тестирования собственных команд 1C:EDT CLI можно использовать инструмент, описанный здесь.

Демонстрационный пример плагина можно посмотреть здесь.