Уважаемые форумчане
есть некая ТЗ1 со строковыми данными выгруженная из файла ексель, имена колонок после обработки функцией назначаются с N1,N2 и т.д до N16, нужно при поиске найденного значения например : "Наименование товаров" в этой ТЗ1, скопировать всю колонку с найденным значением в ТЗ2

                Результат = ЗагрузкаИзExcel(ПолноеИмяФайла);
         Результат.Удалить(0);
  ТЗ = Новый ТаблицаЗначений;
  ТЗ.Колонки.Добавить("Наименование",,"Наименование товаров (работ, услуг)");
  ТЗ.Колонки.Добавить("ЕдиницаИзмерения",,"Единица измерения");
  ТЗ.Колонки.Добавить("Количество",,"Количество");
  ТЗ.Колонки.Добавить("Цена",,"Цена");
  ТЗ.Колонки.Добавить("СтоимостьПоставки",,"Стоимость поставки");
  СтрокаПоиска = Результат.Найти("Наименование товаров (работ, услуг)");
  Если СтрокаПоиска <> Неопределено Тогда
  ТЗ.ЗагрузитьКолонку(Результат.ВыгрузитьКолонку(СтрокаПоиска),"Наименование");
  КонецЕсли;

               переменная СтрокаПоиска возвращает строковое значение а нужен номер колонки, как получить имя или номер колонки ума не приложу, проблема еще в том что в зависимости от ексель файла имена колонок будут прежними но найденные данные могут быть уже в другой колонке
---
Он возвращает СТРОКУ ТАБЛИЦЫ ЗНАЧЕНИЙ.
А получиь колонку...

```1c
    НомерКолонки = -1;
    Для сч = 0 по ТЗ.Колонки.Количество() - 1 Цикл
    Если найденнаяСтрока[сч] = нужноеЗначение Тогда
    НомерКолонки = сч + 1;
    Прервать;
    КОнецЕсли;
    КонецЦикла;
```
---
Что значит не получится?

```1c
    НомерКолонки = 1;
    Для Каждого Колонка Из Результат.Колонки Цикл

    Строка = Результат.Найти("Наименование товаров (работ, услуг)", Колонка.Имя);

    Если НЕ Строка = Неопределено Тогда

    ИскомыйНомерКолонки = НомерКолонки;

    КонецЕсли;

    НомерКолонки = НомерКолонки + 1;

    КонецЦикла;
```
---
Ищите по конкретным колонкам, а не сразу по всем.
---
по конкретным не получится, я же написал что расположение нужных данных может меняться в зависимости от ексель файла
---
Что значит не получится?

```1c
    НомерКолонки = 1;
    Для Каждого Колонка Из Результат.Колонки Цикл

    Строка = Результат.Найти("Наименование товаров (работ, услуг)", Колонка.Имя);

    Если НЕ Строка = Неопределено Тогда

    ИскомыйНомерКолонки = НомерКолонки;

    КонецЕсли;

    НомерКолонки = НомерКолонки + 1;

    КонецЦикла;
```
---
переменная СтрокаПоиска возвращает строковое значение

Она возвращает НЕ строковое значение. А строку таблицы значений, в которой найдено искомое.
А дальше - перебором полей найти нужное.
---
то есть нужно еще организовать еще перебор в СтрокеПоиска? я правильно Вас понял?
---
Да. А что, у вас 100500 колонок?
---
да нет штук 15 всего
---
ок, он же возвращает тоже строковые данные, как я оттуда вытащу номер колонки?
---
Он возвращает СТРОКУ ТАБЛИЦЫ ЗНАЧЕНИЙ.
А получиь колонку...

```1c
    НомерКолонки = -1;
    Для сч = 0 по ТЗ.Колонки.Количество() - 1 Цикл
    Если найденнаяСтрока[сч] = нужноеЗначение Тогда
    НомерКолонки = сч + 1;
    Прервать;
    КОнецЕсли;
    КонецЦикла;
```
---
Спасибо большое
---
Ни чё не понятно!
Типа такого?

```1c
    тз = Новый ТаблицаЗначений;
    тз.Колонки.Добавить("N1");
    тз.Колонки.Добавить("N2");
    тз.Колонки.Добавить("N3");

    стр = тз.Добавить(); стр[0] = "1"; стр[1] = "2"; стр[2] = "3";
    стр = тз.Добавить(); стр[0] = "4"; стр[1] = "5"; стр[2] = "6";
    стр = тз.Добавить(); стр[0] = "7"; стр[1] = "8"; стр[2] = "9";

    Для каждого стр из тз Цикл
    Сообщить(стр[1]);
    КонецЦикла;
```
---
А в чём вопрос? если я правильно понял

```1c
    КолонкаТЗ = ТЗ.Колонки.Найти(СтрокаПоиска);
    НомерКолонки = ТЗ.Колонки.Индекс(КолонкаТЗ) + 1;
```