Добрый день коллеги. Помогите начинающему разработчику.
Задача: Поправить обработку заполняющую табличную часть документа. Обработка загружает из Excel файла сотрудников и суммы премий, нужно добавить выгрузку подразделений.
Проблема Обработать типовыми методами объекта справочник - "Найти по..." не получится т.к наименования подразделений в Excel и 1С совпадают лишь условно, но добавлен управленческий код который достается запросом и присутствует в Excel.

 Вопрос как правильно обработать эти ТЗ.

```1c
    Для НомСтрока = НачальнаяСтрока по МакСтрок цикл
    СтрТЗ = ТЗ.Добавить();
    Для НомСтолбец = 1 по МакСтолб цикл
    Данные = Страница.Cells(НомСтрока,НомСтолбец).Value;
    СтрТЗ[НомСтолбец-1] = Данные;
    КонецЦикла;
```

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Подразделения.Ссылка КАК Подразделение,
    | ЗначенияСвойствОбъектов.Значение КАК КодПодразделения
    |ИЗ
    | Справочник.Подразделения КАК Подразделения
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    | ПО Подразделения.Ссылка = ЗначенияСвойствОбъектов.Объект
    |ГДЕ
    | ЗначенияСвойствОбъектов.Свойство.Наименование = "Код подразделения"";

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

    //Пока ТЗПодразделения.Следующий() Цикл
    //ПодразделениеСопоставлениеСвязи = Справочники.Подразделения.НайтиПоНаименованию(Сред(СТрока(СтрокаТЧ.Столбец_3),5,20));

    Если ЗначениеЗаполнено(Сотрудник) Тогда
    НоваяСтрока = Объект.Начисления.Добавить();
    НоваяСтрока.ФизЛицо = Сотрудник;
    НоваяСтрока.Подразделение = ПодразделениеСопоставлениеСвязи;
    НоваяСтрока.Показатель1 = СтрокаТЧ.Столбец_9;
    НоваяСтрока.ВидРасчета = ВидРасчета;
    НоваяСтрока.ДатаДействия = ДатаНачала;
    НоваяСтрока.ДатаДействияКонец = ДатаОкончания;
    Иначе
    НоваяСтрока = Объект.Начисления.Добавить();
    НоваяСтрока.Показатель1 = СтрокаТЧ.Столбец_9;
    НоваяСтрока.Подразделение = ПодразделениеСопоставлениеСвязи;
    НоваяСтрока.ВидРасчета = ВидРасчета;
    НоваяСтрока.ДатаДействия = ДатаНачала;
    НоваяСтрока.ДатаДействияКонец = ДатаОкончания;

    Сообщить("Не найден: строка " + Строка + ", сотрудник:" + СокрЛП(Строка(СтрокаТЧ.Столбец_2) + ", подразделение" + Строка(СтрокаТЧ.Столбец_3) + ", сумма: " + Строка(СтрокаТЧ.Столбец_9)));
    КонецЕсли;
    Строка = Строка + 1;
    КонецЕсли;
    КонецЦикла
```
---
```1c
    Хрень = ТЗПодразделения .Найти(Лев(СтрокаТЧ.Столбец_3,3),"КодПодразделения");
    Если Хрень<>Неопределено Тогда
    ПодразделениеСопоставлениеСвязи = Хрень.Подразделение;
    КонецЕсли;
```
---
Выгрузи полученную из эксель ТЗ в запрос и там левым соединением получи подразделения.

```1c
    Запрос.Текст =
    "ВЫБРАТЬ
    |тзэксель.код
    |ПОМЕСТИТЬ ВТ_ТЗизЭКСЕЛЬ
    |из &ТЗЭКСЕЛЬ КАК тзэксель"
    Запрос.Параметры.Вставить("ТЗЭКСЕЛЬ ", ТЗ);
```

Пример, как засунуть тз в запрос.
---
З.Ы. Сначала помещаешь данные из ТЗ во временную таблицу и только потом проводишь манипуляции с этой временной таблицей.
---
```1c
    Хрень = ТЗПодразделения .Найти(Лев(СтрокаТЧ.Столбец_3,3),"КодПодразделения");
    Если Хрень<>Неопределено Тогда
    ПодразделениеСопоставлениеСвязи = Хрень.Подразделение;
    КонецЕсли;
```
---
Идеально. Конечно посмотреть самому в методы Таблицы значений я не догадался. Спасибо большое.