Получаю массив файлов

```1c
    МассивФайлов = НайтиФайлы( "D:\tmp" , "*");
```

как теперь этот массив поместить в ТЗ
я делаю так

```1c
    &НаСервере
    Процедура Массив2ТЗ( )

    МассивФайлов = НайтиФайлы( Объект.ПутьККаталогу , "*");

    ТЗ = Новый ТаблицаЗначений;

    ТЗ.Колонки.Добавить("Имя" , Новый ОписаниеТипов("Строка"));
    ТЗ.Колонки.Добавить("ПолноеИмя" , Новый ОписаниеТипов("Строка"));
    ТЗ.Колонки.Добавить("Путь" , Новый ОписаниеТипов("Строка"));
    ТЗ.Колонки.Добавить("ИмяБезРасширения" , Новый ОписаниеТипов("Строка"));
    ТЗ.Колонки.Добавить("Расширение" , Новый ОписаниеТипов("Строка"));

    Для Каждого стрМас Из МассивФайлов Цикл
    СтрТЗ = ТЗ.Добавить();
    СтрТЗ.Имя = стрМас.Имя ;
    СтрТЗ.ПолноеИмя = стрМас.ПолноеИмя ;
    СтрТЗ.Путь = стрМас.Путь ;
    СтрТЗ.ИмяБезРасширения = стрМас.ИмяБезРасширения ;
    СтрТЗ.Расширение = стрМас.Расширение ;
    КонецЦикла;

    ВыводТЗнаФорму("ТЗформ", ТЗ); // выводим Таблицу значений на Форму

    КонецПроцедуры
```

ТЗформ - Таблица Значений на Форме как Реквизит Формы
Вопрос в том как сделать это красивей,
подскажите более красивый способ
---
Сложно назвать раздутием процедуры 6 строчек. Если хочется как-то элегантно, можно положить названия свойств в строку, потом встроенными средствами разложить эту строку в массив свойств, потом попробовать собрать из этого колонки ТЗ ну и прочая еруда. По моему прямого доступа к списку свойств объекта типа "Файл" вроде как нет. Да даже если бы и был, то создание этих колонок в цикле заняло такое же количество строк и времени. Я не вижу что тут оптимизировать. Если беспокоит именно читаемость коды, вынесите создание процедуры в отдельную функцию.
---
Если Вам надо - сохранить в массиве только путь к файлу, то - да, а если необходимо сохранить сам файл в массив, то через - хранилище (ДвоичныеДанные - ХранилищеЗначения)
---
А чем этот способ некрасив?
---
alalexmix Мне НЕ надо сохранить в массиве только путь к файлу,

 И не сам файл в массив,

Мне надо МассивФайлов т.е. массив как он выходит после
 НайтиФайлы( "ПутьКПапке" , "*")
запихнуть в ТЗ
---
DenisCh мне этот способ не нравиться тем что надо перечислять создаваемые колонки , а если например на этом месте будет какойто другой массив произвольный , т.е. существует ли какой нибудь универсальный метода для МАССИВ -> ТЗ

наподобии ТЗ = МАССИВ
---
существует ли какой нибудь универсальный метода для МАССИВ -> ТЗ
Универсального метода быть не может. Только ограниченные рамками.
Простой пример:

```1c
    Массив = Новый Массив;
    Массив.Добавить(1);
    Массив.Добавить("1");
    Массив.Добавить(Неопределено);
    Массив.Добавить(Новый Структура("Колонка1",1));
    Массив.Добавить(Новый Массив(10));
    Массив.Добавить(Новый Массив(10,10));
```

Какие колонки ТЗ будут создаваться автоматически по этому массиву?

Для текущей задачи, можно получить первый элемент массива и пройтись по нему для создания нужных колонок.
---
Для текущей задачи, можно получить первый элемент массива и пройтись по нему для создания нужных колонок.
вот как то так я и хотел , но не знаю как получить первый элемент не задействовав

```1c
    Для Каждого ЭлементМассива Из МассивФайлов Цикл

    ЭлементМассива.Количество();

    КонецЦикла;
```
---
но не знаю как получить первый элемент
хмм.
МассивФайлов[0]
Естественно проверив предварительно, что массив не пустой.
---
>> а если например на этом месте будет какойто другой массив произвольный , т.е. существует ли какой нибудь универсальный метода для МАССИВ -> ТЗ
>>функция НайтиФайлы( "ПутьКПапке" , "*") возращает МассивФайлов , вот мне и надо этот МассивФайлов отправить в Таблицу Значений
То у вас массив содержит произвольные данные, то только то, что возвращает функция "НайтиФайлы" из какого массива вы собрались делать ТЗ? Если у вас там может быть вообще все, что угодно, то см(6), если только массив со списком найденных файлов, то решение в (0) норм, ну за исключением того, что код в цикле можно сократить до пары строк с помощью "ЗаполнитьЗначенияСвойств"
(9) Прав на 100%. Там не набор букв. Универсальной функции нет и быть не может. Но ты можешь написать свою.
---
ЗаполнитьЗначенияСвойст
ОК , согласен , а подскажите тогда как использовать "ЗаполнитьЗначенияСвойств"
у меня чето не получается
---
А что не получается?

```1c
    Для Каждого стрМас Из МассивФайлов Цикл
    ЗаполнитьЗначенияСвойств(ТЗ.Добавить(), стрМас );
    КонецЦикла;
```
---
Для Каждого стрМас Из МассивФайлов Цикл
        ЗаполнитьЗначенияСвойств(ТЗ.Добавить(), стрМас );
    КонецЦикла;

ошибка
{Обработка.КаталогВнОбработок.Форма.Форма.Форма(42)}: Поле объекта не обнаружено (Имя)
  СтрТЗ.Имя = стрМас.Имя ;
---
Я не вижу в (14) строки "СтрТЗ.Имя = стрМас.Имя" и не понимаю, зачем там вообще она может быть нужна
---
Зачем же такая оптимизация если опять надо добавлять прописывать названия всех столбиков, это получается раздутие процедуры , к чему это ????????
Я же про уменьшение и оптимизацию кода спрашиваю
---
Сложно назвать раздутием процедуры 6 строчек. Если хочется как-то элегантно, можно положить названия свойств в строку, потом встроенными средствами разложить эту строку в массив свойств, потом попробовать собрать из этого колонки ТЗ ну и прочая еруда. По моему прямого доступа к списку свойств объекта типа "Файл" вроде как нет. Да даже если бы и был, то создание этих колонок в цикле заняло такое же количество строк и времени. Я не вижу что тут оптимизировать. Если беспокоит именно читаемость коды, вынесите создание процедуры в отдельную функцию.
---
процедур
спасибо за ответы, наверно уже лучше я и не сделаю , еще раз спасибо
---
spacecraft - Вы не о том , это какой то набор букв, мне не надо создавать массив ,
функция НайтиФайлы( "ПутьКПапке" , "*") возращает МассивФайлов , вот мне и надо этот МассивФайлов отправить в Таблицу Значений.
---
это прямой ответ на то, что универсального метода для МАССИВ -> ТЗ нет и быть не может. И для меня это не набор букв.
---
это прямой ответ на то, что универсального метода для МАССИВ -> ТЗ нет и быть не может. И для меня это не набор букв.
Извините но Вы по моему не правы, есть такой способ