|
53 | 53 | КонецПопытки; |
54 | 54 | ``` |
55 | 55 |
|
56 | | -### Пример приложения с несколькими командами: |
| 56 | +### Пример приложения с несколькими командами |
57 | 57 |
|
58 | 58 | ```bsl |
59 | 59 | #Использовать cli |
|
85 | 85 | КонецПопытки; |
86 | 86 | ``` |
87 | 87 |
|
| 88 | +### Пример приложения с вложенными командами |
| 89 | + |
| 90 | +```bsl |
| 91 | +#Использовать cli |
| 92 | +
|
| 93 | +/////////////////////////////////////////////////////////////////////////////// |
| 94 | +
|
| 95 | +Процедура ВыполнитьПриложение() |
| 96 | +
|
| 97 | + Приложение = Новый КонсольноеПриложение("cli", "Помощник генерации приложения на основании шаблона cli"); |
| 98 | + Приложение.Версия("v version","1.0.0"); |
| 99 | +
|
| 100 | + Приложение.ДобавитьКоманду("i init", "Инициализация структуры нового приложения", Новый КомандаInit); |
| 101 | + Приложение.ДобавитьКоманду("g generate", "Генерация элементов структуры приложения", Новый КомандаGenerate); |
| 102 | +
|
| 103 | + Приложение.Запустить(АргументыКоманднойСтроки); |
| 104 | +
|
| 105 | +КонецПроцедуры // ВыполнениеКоманды() |
| 106 | +
|
| 107 | +/////////////////////////////////////////////////////// |
| 108 | +
|
| 109 | +Попытка |
| 110 | +
|
| 111 | + ВыполнитьПриложение(); |
| 112 | +
|
| 113 | +Исключение |
| 114 | +
|
| 115 | + Сообщить(ОписаниеОшибки()); |
| 116 | +
|
| 117 | +КонецПопытки; |
| 118 | +
|
| 119 | +``` |
| 120 | +Класс `КомандаGenerate` |
| 121 | +Для добавления подкоманды в любую команду используется методы `ДобавитьПодкоманду` или `ДобавитьКоманду` |
| 122 | + |
| 123 | +```bsl |
| 124 | +
|
| 125 | +Процедура ОписаниеКоманды(Команда) Экспорт |
| 126 | +
|
| 127 | + // Метод <ДобавитьПодкоманду> |
| 128 | + Команда.ДобавитьПодкоманду("c command", "Генерация дополнительной вложенной команды", Новый КомандаGenerateCommand); |
| 129 | + |
| 130 | + // Метод <ДобавитьКоманду> |
| 131 | + Команда.ДобавитьКоманду("o option", "Генерация опции для команды", Новый КомандаGeneratOption); |
| 132 | +
|
| 133 | +Процедура ВыполнитьКоманду(Знач Команда) Экспорт |
| 134 | +
|
| 135 | +КонецПроцедуры |
| 136 | +
|
| 137 | +``` |
| 138 | + |
88 | 139 | ## Мотивация |
89 | 140 |
|
90 | 141 | Для PR в cmdline слишком большие изменения в API, т.е. обеспечить совместимость очень трудоемко. |
|
0 commit comments