Конструктор массива (Массив = Массив(Значение1, ... , Значение20))
Теги: 1С,КонструкторМассива,Массив

- Конструктор массива берет на вход до 20 Параметров, и возвращает их в виде массива
- Если первый Параметр это Массив, то в него добавляются остальные Параметры
- Рекомендуется добавить в Глобальный модуль
- Пример использования:
ТЗ = Новый ТаблицаЗначений;
Для Каждого ИмяКолонки Из Массив("Колонка1", "Колонка2") Цикл
   ТЗ.Колонки.Добавить(ИмяКолонки)
КонецЦикла;

# Код реализации

```1c
Функция Массив(
    Значениеначение1=Неопределено, Значение2=Неопределено, Значение3=Неопределено, Значение4=Неопределено, Значение5=Неопределено,
    Значение6=Неопределено, Значение7=Неопределено, Значение8=Неопределено, Значение9=Неопределено, Значение10=Неопределено,
    Значение11=Неопределено, Значение12=Неопределено, Значение13=Неопределено, Значение14=Неопределено, Значение15=Неопределено,
    Значение16=Неопределено, Значение17=Неопределено, Значение18=Неопределено, Значение19=Неопределено, Значение20=Неопределено) Экспорт

	Если ТипЗначения(Значение1) = Тип("Массив") Тогда
		М = Значение1
	Иначе
		М = Новый Массив();
		Если Значение1=Неопределено Тогда Возврат М; Иначе М.Добавить(Значение1); КонецЕсли;
	КонецЕсли;

   Если Значение2=Неопределено Тогда Возврат М; Иначе М.Добавить(Значение2); КонецЕсли;
   Если Значение3=Неопределено Тогда Возврат М; Иначе М.Добавить(Значение3); КонецЕсли;
   Если Значение4=Неопределено Тогда Возврат М; Иначе М.Добавить(Значение4); КонецЕсли;
   Если Значение5=Неопределено Тогда Возврат М; Иначе М.Добавить(Значение5); КонецЕсли;
   Если Значение6=Неопределено Тогда Возврат М; Иначе М.Добавить(Значение6); КонецЕсли;
   Если Значение7=Неопределено Тогда Возврат М; Иначе М.Добавить(Значение7); КонецЕсли;
   Если Значение8=Неопределено Тогда Возврат М; Иначе М.Добавить(Значение8); КонецЕсли;
   Если Значение9=Неопределено Тогда Возврат М; Иначе М.Добавить(Значение9); КонецЕсли;
   Если Значение10=Неопределено Тогда Возврат М; Иначе М.Добавить(Значение10); КонецЕсли;
   Если Значение11=Неопределено Тогда Возврат М; Иначе М.Добавить(Значение11); КонецЕсли;
   Если Значение12=Неопределено Тогда Возврат М; Иначе М.Добавить(Значение12); КонецЕсли;
   Если Значение13=Неопределено Тогда Возврат М; Иначе М.Добавить(Значение13); КонецЕсли;
   Если Значение14=Неопределено Тогда Возврат М; Иначе М.Добавить(Значение14); КонецЕсли;
   Если Значение15=Неопределено Тогда Возврат М; Иначе М.Добавить(Значение15); КонецЕсли;
   Если Значение16=Неопределено Тогда Возврат М; Иначе М.Добавить(Значение16); КонецЕсли;
   Если Значение17=Неопределено Тогда Возврат М; Иначе М.Добавить(Значение17); КонецЕсли;
   Если Значение18=Неопределено Тогда Возврат М; Иначе М.Добавить(Значение18); КонецЕсли;
   Если Значение19=Неопределено Тогда Возврат М; Иначе М.Добавить(Значение19); КонецЕсли;
   Если Значение20=Неопределено Тогда Возврат М; Иначе М.Добавить(Значение20); КонецЕсли;

	Возврат М;
КонецФункции
```

# Примечания

- зачем так усложнять то... есть же банально СтрРазделить(ИсходнаяСтрока) и все а на выходе одна строку с разделителем которую проще сделать чем 100500 параметров использовать

- З1 = Неопределено вводит в некоторый ступор, пока не поймешь что это З - не цифра, а буква 😃
Я бы использовал П1, П2, П3 ...

- (1) reborn85, массив может содержать произвольные значения, при этом записывается удобно - в 1 строку, а не в 20. Хз, мне ИМХО очень много времени экономит в работе.