Skip to content

Commit eb43cbc

Browse files
authored
Merge pull request #12 from khorevaa/feature/get-options
Улучшено получение опций.
2 parents d3af99b + a80238e commit eb43cbc

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

src/core/Классы/cmd/КомандаПриложения.os

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,23 @@
9696
// Произвольный - Значение - полученное значение в результате чтения строки использования или переменных окружения
9797
Функция ЗначениеОпции(Знач ИмяОпции) Экспорт
9898

99-
Возврат ОпцииИндекс[ИмяОпции].Значение;
99+
Если СтрНачинаетсяС(ИмяОпции, "-")
100+
Или СтрНачинаетсяС(ИмяОпции, "--") Тогда
101+
// Ничего не делаем переданы уже нормализированные опции
102+
Иначе
103+
Префикс = "-";
104+
Если СтрДлина(ИмяОпции) > 1 Тогда
105+
Префикс = "--";
106+
КонецЕсли;
107+
ИмяОпции = СтрШаблон("%1%2",Префикс,ИмяОпции);
108+
КонецЕсли;
109+
110+
ОпцииИндекса = ОпцииИндекс[ИмяОпции];
111+
Если ОпцииИндекса = Неопределено Тогда
112+
ВызватьИсключение СтрШаблон("Ошибка получение значения опции <%1>. Опция не найдена в индексе опций команды", ИмяОпции);
113+
КонецЕсли;
114+
115+
Возврат ОпцииИндекса.Значение;
100116

101117
КонецФункции
102118

@@ -109,7 +125,12 @@
109125
// Произвольный - Значение - полученное значение в результате чтения строки использования или переменных окружения
110126
Функция ЗначениеАргумента(Знач ИмяАргумента) Экспорт
111127

112-
Возврат АргументыИндекс[ИмяАргумента].Значение;
128+
АргументИндекса = АргументыИндекс[ВРег(ИмяАргумента)];
129+
Если АргументИндекса = Неопределено Тогда
130+
ВызватьИсключение СтрШаблон("Ошибка получение значения аргумента <%1>. Аргумент не найден в индексе аргументов команды", ИмяАргумента);
131+
КонецЕсли;
132+
133+
Возврат АргументИндекса.Значение;
113134

114135
КонецФункции
115136

0 commit comments

Comments
 (0)