Skip to content

Commit cf128ce

Browse files
committed
Корректировка параметров команды для работы с типом перечисление
1 parent 6168e09 commit cf128ce

File tree

1 file changed

+92
-8
lines changed

1 file changed

+92
-8
lines changed

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

Lines changed: 92 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
// Подробное описание параметра команды
1010
// Используется при выводе справки (запланировано)
11-
Перем ПодробноеОписание Экспорт; // Строка
11+
Перем ПодробноеОписаниеПараметра Экспорт; // Строка
1212

1313
// Содержит имя переменной окружения, откуда получать значение
1414
// допустимо использование нескольких переменных окружения через пробел
@@ -87,6 +87,7 @@
8787
ТипПараметра = ВходящийТипПараметра;
8888

8989
РазделительМассива = Неопределено;
90+
ПодробноеОписаниеПараметра = "";
9091
ПодготовитьНаименованияПараметров();
9192

9293
КонецПроцедуры
@@ -123,6 +124,23 @@
123124

124125
КонецФункции
125126

127+
// Возвращает подробное описание для справки
128+
//
129+
// Возвращаемое значение:
130+
// строка
131+
Функция ПолучитьПодробноеОписание() Экспорт
132+
133+
ВстроенныеТипы = ВстроенныеТипЗначенийПараметров();
134+
ОпределенныйТип = ВстроенныеТипы[Строка(ТипЗнч(ТипЗначенияПараметра))];
135+
Если ОпределенныйТип = Неопределено
136+
Или Тип("ТипПеречисление") = ОпределенныйТип Тогда
137+
ПодробноеОписаниеПараметра = ТипЗначенияПараметра.ПодробноеОписание();
138+
КонецЕсли;
139+
140+
Возврат ПодробноеОписаниеПараметра;
141+
142+
КонецФункции
143+
126144
// Возвращает истина, если данный параметр обязателен для указания
127145
//
128146
// Возвращаемое значение:
@@ -475,21 +493,87 @@
475493

476494
КонецФункции
477495

496+
// Функция устанавливает тип параметра "Перечисление"
497+
// возвращает текущий параметр команды
498+
//
499+
// Параметры:
500+
// ДоступныеПеречисления - Соответсвие
501+
// Ключ - Строка
502+
// Значение - Структура ("Наименование, Значение, ДополнительнаяСправка")
503+
// Возвращаемое значение:
504+
// ЭтотОбъект - класс ПараметрКоманды
505+
// Вызов необязателен, автоматически определяется при создании параметра,
506+
// если передано значение по умолчанию
507+
Функция ТПеречисление(Знач ДоступныеПеречисления = Неопределено) Экспорт
508+
509+
ТипОпции = ТипЗнч(Неопределено);
510+
ТипЭлементаОпции = ТипОпции;
511+
ТипЗначенияПараметра = Новый ТипПеречисление();
512+
513+
Если Не ДоступныеПеречисления = Неопределено Тогда
514+
ТипЗначенияПараметра.УстановитьПеречисления(ДоступныеПеречисления);
515+
КонецЕсли;
516+
517+
Возврат ЭтотОбъект;
518+
519+
КонецФункции
520+
521+
// Функция устанавливает произвольный тип параметра
522+
// возвращает текущий параметр команды
523+
//
524+
// Параметры:
525+
// Наименование - строка - пользовательное значение перечисления
526+
// Значение - произвольный - системное значение перечисления
527+
// ДополнительнаяСправка - строка - дополнительная строка для справки
528+
//
529+
Функция Перечисление(Знач Наименование, Знач Значение = Неопределено, Знач ДополнительнаяСправка = "") Экспорт
530+
531+
Если Не ТипЗнч(ТипЗначенияПараметра) = Тип("ТипПеречисление") Тогда
532+
ВызватьИсключение "Указание перечисления допустимо только для типа параметра перечисление";
533+
КонецЕсли;
534+
535+
Если Значение = Неопределено Тогда
536+
Значение = Наименование;
537+
КонецЕсли;
538+
539+
ТипЗначенияПараметра.ДобавитьПеречисление(Наименование, Значение, ДополнительнаяСправка);
540+
541+
Возврат ЭтотОбъект;
542+
543+
КонецФункции
544+
545+
// Функция устанавливает признак обязательности указания данного параметра
546+
// возвращает текущий параметр команды
547+
//
548+
// Параметры:
549+
// Признак - булево - признак обязательности указания данного параметра (по умолчанию Истина)
550+
//
551+
// Возвращаемое значение:
552+
// ЭтотОбъект - класс ПараметрКоманды
553+
Функция ПодробноеОписание(Знач ВходящееПодробноеОписание) Экспорт
554+
555+
ПодробноеОписаниеПараметра = ВходящееПодробноеОписание;
556+
557+
Возврат ЭтотОбъект;
558+
559+
КонецФункции
560+
478561
#КонецОбласти
479562

480563
Функция ВстроенныеТипЗначенийПараметров()
481564

482565
ВстроенныеТипы = Новый Соответствие;
483566

484-
ВстроенныеТипы.Вставить("Булево", Новый ТипБулево);
485-
ВстроенныеТипы.Вставить("Число", Новый ТипЧисло);
486-
ВстроенныеТипы.Вставить("Дата", Новый ТипДатаВремя);
567+
ВстроенныеТипы.Вставить("ТипБулево", Тип("ТипБулево"));
568+
ВстроенныеТипы.Вставить("ТипЧисло", Тип("ТипЧисло"));
569+
ВстроенныеТипы.Вставить("ТипДатаВремя", Тип("ТипДатаВремя"));
487570
//ВстроенныеТипы.Вставить("Длительность", Новый ТипДлительность);
488-
ВстроенныеТипы.Вставить("Строка", Новый ТипСтрока);
571+
ВстроенныеТипы.Вставить("ТипСтрока", Тип("ТипСтрока"));
489572
//ВстроенныеТипы.Вставить("МассивДлительностей", Новый ТипМассивДлительностей);
490-
ВстроенныеТипы.Вставить("МассивЧисел", Новый ТипМассивЧисел);
491-
ВстроенныеТипы.Вставить("МассивСтрок", Новый ТипМассивСтрок);
492-
ВстроенныеТипы.Вставить("МассивДат", Новый ТипМассивДат);
573+
ВстроенныеТипы.Вставить("ТипМассивЧисел", Тип("ТипМассивЧисел"));
574+
ВстроенныеТипы.Вставить("ТипМассивСтрок", Тип("ТипМассивСтрок"));
575+
ВстроенныеТипы.Вставить("ТипМассивДат", Тип("ТипМассивДат"));
576+
ВстроенныеТипы.Вставить("ТипПеречисление", Тип("ТипПеречисление"));
493577

494578
Возврат ВстроенныеТипы;
495579

0 commit comments

Comments
 (0)