Всем привет!
На картинке строка таблицы значения из ТЗ.
Задача получить свойство по значению.
То есть, зная значение(переменная, которая "приехала" из другого источника) "8", надо получить "к5".

Если кому интересно задача в целом, для чего это надо, поясняю: надо построить логическую цепочку, например есть переменная (везде ТИП "Строка") с значением "6". Потом надо найти в СтрокеТЗ на картинке Значение "6", от него получить Свойство "к3". Далее зная свойство "к3", нужные мне значения другого свойства равняется "к6"(далее по тоже логике к9, к12, к15... - через цифру 3). А из к6 получить нужное мне значение это не проблема - СтрокаДанных.к6
---
В общем справился сам, если кому пригодиться, буду только рад:

```1c
    Процедура Шляпа ()
    МассивСтруктур = ОбщегоНазначения.ТаблицаЗначенийВМассив(ТаблицаЗначений);
    КонецПроцедуры

    &НаСервереБезКонтекста
    Функция НайтиВМассивеСтруктур (Массив, КлючСтруктуры) Экспорт

    Результат = Неопределено;
    Для Каждого ЭлементМассива Из Массив Цикл
    Если ЗначениеЗаполнено(Неопределено) Тогда Прервать; КонецЕсли;
    Если ТипЗнч(ЭлементМассива) = Тип("Структура") Тогда
    Для Каждого ЭлементСтруктуры Из ЭлементМассива Цикл
    Если ЭлементСтруктуры.Значение = КлючСтруктуры Тогда
    ИскомоеЗначение = ЭлементСтруктуры.Ключ;
    Результат = ЭлементМассива;
    Прервать;
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;
    Возврат Результат;
    КонецФункции
```
---
Если значения в колонке ТЗ уникальные то методом Найти(Значение, "Колонка") получить строку и из строки получить значение колонки "Свойство".

Чем соответствие не устроило для решения задачи?
---
Не подходит этот метод.

Найти ()
Возвращаемое значение:
Тип: СтрокаТаблицыЗначений, Неопределено.
Строка, в которой содержится искомое значение.

На картинке уже найденная СтрокаТаблицыЗначений, в которой есть нужное значение.
Мне уже в этой самой СтрокаТаблицыЗначений по Значению "6", надо получить "СтрокаДанных.к6".
---
Это удаление гланд через анус.

Я не знаю, что вы там пытаетесь решить, но в чем проблема сделать что-то вроде такого:

```1c
    СоответствиеКолонок = Новый Соответствие;
    СоответствиеКолонок.Вставить("1", "К1");
    СоответствиеКолонок.Вставить("2", "К10");
    СоответствиеКолонок.Вставить("3", "К11");
    СоответствиеКолонок.Вставить("4", "К12");
    СоответствиеКолонок.Вставить("5", "К2");
    СоответствиеКолонок.Вставить("6", "К3");
    СоответствиеКолонок.Вставить("7", "К4");
    СоответствиеКолонок.Вставить("8", "К5");
    СоответствиеКолонок.Вставить("9", "К6");
    СоответствиеКолонок.Вставить("10", "К7");
    СоответствиеКолонок.Вставить("11", "К8");
    СоответствиеКолонок.Вставить("12", "К9");

    СтрокаТЗ2 = ТЗ2.Найти(ЗначениеПоиска, "Колонка");

    Если НЕ СтрокаТЗ2 = Неопределено Тогда
    ИмяКолонки = СоответствиеКолонок.Получить(СтрокаТЗ1.Колонка);
    Значение = СтрокаТЗ2[ИмяКолонки];
    КонецЕсли;
```
---
В моей ситуации, колонок (к1, к2, к3...кN) может быть всегда разное количество.
Да и если бы я знал заранее что СтрокаДанных.к6 = Значению "9", тогда соответствие можно использовать.
Повторюсь, я не знаю количество колонок, не знаю какие другие значения могут быть кроме одного. Вот по этому значению, мне надо найти какая СтрокаДанных.к_ будет.

Есть мысль выгрузить СтрокаТаблицыЗначений в массив и там поискать как-то.
---
Тогда проще будет тупо циклом по колонкам искать значение

Что-то вроде этого:

```1c
    ИменаКолонокТЗ2 = ";
    Сч = 1;
    Для Каждого Колонка ИЗ ТЗ2.Колонки Цикл

    ИменаКолонокТЗ2 = ИменаКолонокТЗ2 + Колонка.Имя + ?(Сч < ТЗ2.Колонки.Количество(), ",", ");
    Сч = Сч + 1;

    КонецЦикла

    Для Каждого Стр ИЗ ТЗ1 Цикл

    СтрокаТЗ2 = ТЗ2.Найти(Стр.Значение, ИменаКолонокТЗ2);
    Для Каждого Колонка ИЗ ТЗ2.Колонки Цикл
    Если ТЗ2[Колонка.Имя] = Стр.Значение;
    //делаем, что нужно
    Прервать;
    КонецЕсли;
    КонецЦикла;

    КонецЦикла;
```
---
ТЗ2 - моя таблица значений.
ТЗ1 - это какая таблица значений?
---
Какая-то исходная, в которой есть пересекающиеся значения со значениями в ТЗ2.
Ну или что у вас является источником значений, которые вы планируете искать в любой строке ТЗ2?
---
Какая-то исходная, в которой есть пересекающиеся значения со значениями
такой таблицы нет, но ее можно сделать, загнать туда значение по которому будем искать?
---
Спасибо за уделенное время, но это не работает.
---
Спасибо за помощь, решение сам нашел. См. ниже если интересно
---
В общем справился сам, если кому пригодиться, буду только рад:

```1c
    Процедура Шляпа ()
    МассивСтруктур = ОбщегоНазначения.ТаблицаЗначенийВМассив(ТаблицаЗначений);
    КонецПроцедуры

    &НаСервереБезКонтекста
    Функция НайтиВМассивеСтруктур (Массив, КлючСтруктуры) Экспорт

    Результат = Неопределено;
    Для Каждого ЭлементМассива Из Массив Цикл
    Если ЗначениеЗаполнено(Неопределено) Тогда Прервать; КонецЕсли;
    Если ТипЗнч(ЭлементМассива) = Тип("Структура") Тогда
    Для Каждого ЭлементСтруктуры Из ЭлементМассива Цикл
    Если ЭлементСтруктуры.Значение = КлючСтруктуры Тогда
    ИскомоеЗначение = ЭлементСтруктуры.Ключ;
    Результат = ЭлементМассива;
    Прервать;
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;
    Возврат Результат;
    КонецФункции
```