Skip to content

Commit 715be00

Browse files
committed
Параметры массивы с разделителями.
1 parent 0217afb commit 715be00

File tree

1 file changed

+27
-8
lines changed

1 file changed

+27
-8
lines changed

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

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
Перем ТипПараметра; // Опция и аргумент
2525

2626
Перем ТипЗначенияПараметра; // Произвольный класс реализуемые несколько обязательных методов
27-
27+
Перем РазделительМассива;
2828

2929
Процедура ПриСозданииОбъекта(ВходящийТипПараметра, ПолноеИмя, ЗначениеПоУмолчанию = "", ОписаниеПараметра = "", ПеременнаяОкруженияПараметра = "")
3030

@@ -62,6 +62,7 @@
6262

6363
ТипПараметра = ВходящийТипПараметра;
6464

65+
РазделительМассива = Неопределено;
6566
ПодготовитьНаименованияПараметров();
6667

6768
КонецПроцедуры
@@ -86,7 +87,18 @@
8687

8788
Процедура УстановитьЗначение(ВходящееЗначение) Экспорт
8889

89-
Значение = ТипЗначенияПараметра.УстановитьЗначение(ВходящееЗначение, Значение);
90+
Если ЭтоМассив()
91+
И Не РазделительМассива = Неопределено Тогда
92+
93+
МассивСтрок = СтрРазделить(ВходящееЗначение, РазделительМассива);
94+
Для каждого ЭлементМассива Из МассивСтрок Цикл
95+
Значение = ТипЗначенияПараметра.УстановитьЗначение(ВходящееЗначение, Значение);
96+
КонецЦикла;
97+
98+
Иначе
99+
Значение = ТипЗначенияПараметра.УстановитьЗначение(ВходящееЗначение, Значение);
100+
КонецЕсли;
101+
90102

91103
УстановленаПользователем = Истина;
92104
Если ПеременнаяВыгрузкиУстановлена Тогда
@@ -110,7 +122,7 @@
110122
Если ЗначениеЗаполнено(ЗначениеИзПеременнойОкружения) Тогда
111123

112124
УстановленаИзПеременнойОкружения = Истина;
113-
Значение = ТипЗначенияПараметра.УстановитьЗначение(ЗначениеИзПеременнойОкружения, Значение);
125+
УстановитьЗначение(ЗначениеИзПеременнойОкружения);
114126

115127
КонецЕсли;
116128

@@ -183,34 +195,41 @@
183195

184196
КонецФункции
185197

186-
Функция ТМассивДат(Знач ФорматДаты = "yyyy-MM-dd_HH:mm:ss") Экспорт
198+
Функция ТМассивДат(Знач ФорматДаты = "yyyy-MM-dd_HH:mm:ss", Знач ВходящийРазделительМассива = Неопределено) Экспорт
187199

188200
ТипОпции = Тип("Массив");
189201
ТипЭлементаОпции = Тип("Дата");
190202
ТипЗначенияПараметра = Новый ТипМассивДат(ФорматДаты);
191203
Значение = Новый Массив;
192-
204+
Если Не ВходящийРазделительМассива = Неопределено Тогда
205+
РазделительМассива = ВходящийРазделительМассива;
206+
КонецЕсли;
193207
Возврат ЭтотОбъект;
194208

195209
КонецФункции
196210

197-
Функция ТМассивЧисел() Экспорт
211+
Функция ТМассивЧисел(Знач ВходящийРазделительМассива = Неопределено) Экспорт
198212

199213
ТипОпции = Тип("Массив");
200214
ТипЭлементаОпции = Тип("Число");
201215
ТипЗначенияПараметра = Новый ТипМассивЧисел();
202216
Значение = Новый Массив;
217+
Если Не ВходящийРазделительМассива = Неопределено Тогда
218+
РазделительМассива = ВходящийРазделительМассива;
219+
КонецЕсли;
203220
Возврат ЭтотОбъект;
204221

205222
КонецФункции
206223

207-
Функция ТМассивСтрок() Экспорт
224+
Функция ТМассивСтрок(Знач ВходящийРазделительМассива = Неопределено) Экспорт
208225

209226
ТипОпции = Тип("Массив");
210227
ТипЭлементаОпции = Тип("Строка");
211228
ТипЗначенияПараметра = Новый ТипМассивСтрок();
212229
Значение = Новый Массив;
213-
230+
Если Не ВходящийРазделительМассива = Неопределено Тогда
231+
РазделительМассива = ВходящийРазделительМассива;
232+
КонецЕсли;
214233
Возврат ЭтотОбъект;
215234

216235
КонецФункции

0 commit comments

Comments
 (0)