|
96 | 96 | // Произвольный - Значение - полученное значение в результате чтения строки использования или переменных окружения |
97 | 97 | Функция ЗначениеОпции(Знач ИмяОпции) Экспорт |
98 | 98 |
|
| 99 | + ОпцииИндекса = ОпцияИзИндекса(ИмяОпции); |
| 100 | + Если ОпцииИндекса = Неопределено Тогда |
| 101 | + ВызватьИсключение СтрШаблон("Ошибка получение значения опции <%1>. Опция не найдена в индексе опций команды", ИмяОпции); |
| 102 | + КонецЕсли; |
| 103 | + |
99 | 104 | Возврат ОпцияИзИндекса(ИмяОпции).Значение; |
100 | 105 |
|
101 | 106 | КонецФункции |
|
109 | 114 | // Произвольный - Значение - полученное значение в результате чтения строки использования или переменных окружения |
110 | 115 | Функция ЗначениеАргумента(Знач ИмяАргумента) Экспорт |
111 | 116 |
|
| 117 | + АргументИндекса = АргументИзИндекса(ИмяАргумента); |
| 118 | + |
| 119 | + Если АргументИндекса = Неопределено Тогда |
| 120 | + ВызватьИсключение СтрШаблон("Ошибка получение значения аргумента <%1>. Аргумент не найден в индексе аргументов команды", ИмяАргумента); |
| 121 | + КонецЕсли; |
| 122 | + |
112 | 123 | Возврат АргументИзИндекса(ИмяАргумента).Значение; |
113 | 124 |
|
114 | 125 | КонецФункции |
115 | 126 |
|
| 127 | +// Функция возвращает значение опции команды родителя по переданному имени/синониму опции |
| 128 | +// Возвращает первое из совпадений или неопределенно в случае отсутствия опции |
| 129 | +// |
| 130 | +// Параметры: |
| 131 | +// ИмяОпции - строка - имя или синоним опции |
| 132 | +// |
| 133 | +// Возвращаемое значение: |
| 134 | +// Произвольный, Неопределенно - полученное значение в результате чтения строки использования или переменных окружения |
| 135 | +// или неопределенно в случае отсутствия в индексе указанной опции |
| 136 | +Функция ЗначениеОпцииКомандыРодителя(Знач ИмяОпции) Экспорт |
| 137 | + |
| 138 | + Лог.Отладка("Ищю опцию <%1> для родителей", ИмяОпции); |
| 139 | + |
| 140 | + Для каждого РодительКоманды Из КомандыРодители Цикл |
| 141 | + |
| 142 | + Лог.Отладка(" --> Проверяю родителя <%1>", РодительКоманды.ПолучитьИмяКоманды()); |
| 143 | + |
| 144 | + ОпцияРодителя = РодительКоманды.ОпцияИзИндекса(ИмяОпции); |
| 145 | + |
| 146 | + Если НЕ ОпцияРодителя = Неопределено Тогда |
| 147 | + Возврат ОпцияРодителя.Значение; |
| 148 | + КонецЕсли; |
| 149 | + |
| 150 | + ОпцияВышестоящегоРодителя = РодительКоманды.ЗначениеОпцииКомандыРодителя(ИмяОпции); |
| 151 | + |
| 152 | + Если НЕ ОпцияВышестоящегоРодителя = Неопределено Тогда |
| 153 | + Возврат ОпцияВышестоящегоРодителя.Значение; |
| 154 | + КонецЕсли; |
| 155 | + |
| 156 | + КонецЦикла; |
| 157 | + |
| 158 | + Возврат Неопределено; |
| 159 | + |
| 160 | +КонецФункции |
| 161 | + |
| 162 | +// Функция возвращает значение аргумента команды родителя по переданному имени аргумента |
| 163 | +// Возвращает первое из совпадений или неопределенно в случае отсутствия аргумента |
| 164 | +// |
| 165 | +// Параметры: |
| 166 | +// ИмяАргумента - строка - имя аргумента |
| 167 | +// |
| 168 | +// Возвращаемое значение: |
| 169 | +// Произвольный, Неопределенно - полученное значение в результате чтения строки использования или переменных окружения |
| 170 | +// или неопределенно в случае отсутствия в индексе указанного аргумента |
| 171 | +Функция ЗначениеАргументаКомандыРодителя(Знач ИмяАргумента) Экспорт |
| 172 | + |
| 173 | + Лог.Отладка("Ищю аргумент <%1> для родителей", ИмяАргумента); |
| 174 | + |
| 175 | + Для каждого РодительКоманды Из КомандыРодители Цикл |
| 176 | + |
| 177 | + Лог.Отладка(" --> Проверяю родителя <%1>", РодительКоманды.ПолучитьИмяКоманды()); |
| 178 | + |
| 179 | + АргументРодителя = РодительКоманды.АргументИзИндекса(ИмяАргумента); |
| 180 | + |
| 181 | + Если НЕ АргументРодителя = Неопределено Тогда |
| 182 | + Возврат АргументРодителя.Значение; |
| 183 | + КонецЕсли; |
| 184 | + |
| 185 | + АргументВышестоящегоРодителя = РодительКоманды.ЗначениеАргументаКомандыРодителя(ИмяАргумента); |
| 186 | + |
| 187 | + Если НЕ АргументВышестоящегоРодителя = Неопределено Тогда |
| 188 | + Возврат АргументВышестоящегоРодителя.Значение; |
| 189 | + КонецЕсли; |
| 190 | + |
| 191 | + КонецЦикла; |
| 192 | + |
| 193 | + Возврат Неопределено; |
| 194 | + |
| 195 | +КонецФункции |
| 196 | + |
116 | 197 | // Функция возвращает все параметры команды, для доступа к ним по синонимам |
117 | 198 | // |
118 | 199 | // Возвращаемое значение: |
|
160 | 241 | ПолныйПуть = Новый Массив; |
161 | 242 |
|
162 | 243 | Для каждого Родитель Из КомандыРодители Цикл |
163 | | - ПолныйПуть.Добавить(Родитель); |
| 244 | + ПолныйПуть.Добавить(Родитель.ПолучитьИмяКоманды()); |
164 | 245 | КонецЦикла; |
165 | 246 | ПолныйПуть.Добавить(СокрЛП(Имя)); |
166 | 247 |
|
|
370 | 451 | КомандыРодителиДляПодчиненной.Добавить(КомандаРодитель); |
371 | 452 | КонецЦикла; |
372 | 453 |
|
373 | | - КомандыРодителиДляПодчиненной.Добавить(Имя); |
| 454 | + КомандыРодителиДляПодчиненной.Добавить(ЭтотОбъект); |
374 | 455 |
|
375 | 456 | Для каждого Подчиненнаякоманда Из ВложенныеКоманды Цикл |
376 | 457 | Подчиненнаякоманда.КомандыРодители = КомандыРодителиДляПодчиненной; |
|
407 | 488 | КонецЦикла; |
408 | 489 |
|
409 | 490 | КонецЕсли; |
410 | | - //Лог.Отладка("Читаю аргументы строки"); |
| 491 | + |
| 492 | + Лог.Отладка("Разбираю строку использования с помощью лексера"); |
411 | 493 |
|
412 | 494 | Лексер = Новый Лексер(Спек).Прочитать(); |
413 | 495 | Если Лексер.ЕстьОшибка() Тогда |
|
439 | 521 | // Описание - объект - описание опции для справки. |
440 | 522 | // |
441 | 523 | // Возвращаемое значение: |
442 | | -// Команда - класс ПараметрКоманды |
| 524 | +// ПараметрКоманды - Созданный параметр команды |
443 | 525 | // |
444 | 526 | // Дополнительно смотри справку по классу ПараметрКоманды |
445 | 527 | Функция Опция(Имя, Значение = "", Описание = "") Экспорт |
446 | 528 |
|
447 | 529 | НоваяОпция = Новый ПараметрКоманды("опция", Имя, Значение, Описание); |
448 | 530 | Опции.Вставить(НоваяОпция, НоваяОпция); |
449 | 531 |
|
450 | | - |
451 | 532 | Возврат НоваяОпция; |
452 | 533 |
|
453 | 534 | КонецФункции |
|
460 | 541 | // Описание - объект - описание аргумента для справки. |
461 | 542 | // |
462 | 543 | // Возвращаемое значение: |
463 | | -// Команда - класс ПараметрКоманды |
| 544 | +// ПараметрКоманды - Созданный параметр команды |
464 | 545 | // |
465 | 546 | // Дополнительно смотри справку по классу ПараметрКоманды |
466 | 547 | Функция Аргумент(Имя, Значение = "", Описание = "") Экспорт |
|
478 | 559 | // ИмяОпции - строка - имя или синоним опции |
479 | 560 | // |
480 | 561 | // Возвращаемое значение: |
481 | | -// Произвольный - Значение - полученное значение в результате чтения строки использования или переменных окружения |
482 | | -// |
| 562 | +// ПараметраКоманды, Неопределенно - класс опции, находящийся в индексе Опций команды |
| 563 | +// Неопределенно, в случае отсутствия в индексе опций с запрошенным именем |
483 | 564 | Функция ОпцияИзИндекса(Знач ИмяОпции) Экспорт |
484 | 565 |
|
485 | 566 | Если СтрНачинаетсяС(ИмяОпции, "-") |
|
494 | 575 | КонецЕсли; |
495 | 576 |
|
496 | 577 | ОпцииИндекса = ОпцииИндекс[ИмяОпции]; |
497 | | - Если ОпцииИндекса = Неопределено Тогда |
498 | | - ВызватьИсключение СтрШаблон("Ошибка получение значения опции <%1>. Опция не найдена в индексе опций команды", ИмяОпции); |
499 | | - КонецЕсли; |
500 | 578 |
|
501 | 579 | Возврат ОпцииИндекса; |
502 | 580 |
|
503 | 581 | КонецФункции |
504 | 582 |
|
505 | | -// Функция возвращает значение аргумента по переданному имени аргумента |
| 583 | +// Функция возвращает параметры команды для аргумента по переданному имени аргумента |
506 | 584 | // |
507 | 585 | // Параметры: |
508 | 586 | // ИмяАргумента - строка - имя аргумента |
509 | 587 | // |
510 | 588 | // Возвращаемое значение: |
511 | | -// Произвольный - Значение - полученное значение в результате чтения строки использования или переменных окружения |
512 | | -// |
| 589 | +// ПараметраКоманды, Неопределенно - класс аргумента, находящийся в индексе Аргументов команды |
| 590 | +// Неопределенно, в случае отсутствия в индексе аргумента с запрошенным именем |
513 | 591 | Функция АргументИзИндекса(Знач ИмяАргумента) Экспорт |
514 | 592 |
|
515 | 593 | АргументИндекса = АргументыИндекс[ВРег(ИмяАргумента)]; |
516 | | - Если АргументИндекса = Неопределено Тогда |
517 | | - ВызватьИсключение СтрШаблон("Ошибка получение значения аргумента <%1>. Аргумент не найден в индексе аргументов команды", ИмяАргумента); |
518 | | - КонецЕсли; |
519 | 594 |
|
520 | 595 | Возврат АргументИндекса; |
521 | 596 |
|
|
0 commit comments