Добрый день. Пытаюсь реализовать поиск в справочнике контрагенты по доп. реквизиту КодУт. Но возвращается пустое значение. Что неправильно ?

```1c
    Функция НайдемКонтрагента(КодКонтрагента)

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ

    | КонтрагентыДополнительныеРеквизиты.Ссылка КАК Контрагент
    |ИЗ
    | Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты
    |ГДЕ
    | КонтрагентыДополнительныеРеквизиты.Свойство = &Свойство
    | И КонтрагентыДополнительныеРеквизиты.Ссылка = &Ссылка";

    Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("КодУт", Истина);
    Запрос.УстановитьПараметр("Ссылка",КодКонтрагента);

    Результат = Запрос.Выполнить().Выбрать();
    Пока Результат.Следующий() цикл
    БКонтрагент = Результат.Контрагент;
    КонецЦикла;
    Сообщить(БКонтрагент;);
    Возврат БКонтрагент;

    КонецФункции
```
---
Вы определитесь, это у Вас "дополнительный реквизит" или "дополнительное сведение"? План видов характеристик один, а поведение разное.
Если "дополнительный реквизит", то Ваша функция должна быть такой:

```1c
    Функция НайдемКонтрагента(КодКонтрагента)

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ Различные

    | КонтрагентыДополнительныеРеквизиты.Ссылка КАК Контрагент
    |ИЗ
    | Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты
    |ГДЕ
    | КонтрагентыДополнительныеРеквизиты.Свойство.Имя = "КодУТ"
    | И КонтрагентыДополнительныеРеквизиты.Значение = &КодКонтрагента";

    Запрос.УстановитьПараметр("КодКонтрагента",КодКонтрагента);

    Результат = Запрос.Выполнить().Выбрать();
    Пока Результат.Следующий() цикл
    БКонтрагент = Результат.Контрагент;
    КонецЦикла;
    Сообщить(БКонтрагент;);
    Возврат БКонтрагент;

    КонецФункции
```

Обратите внимание, что искать элемент плана видов характеристик по наименованию - это еще один кирпич запрос в базу. Правильнее поступить так, как задумано разрабами: Надо установить имя элементу плана видов характеристик в его карточке (форме элемента) в самом низу в группе "Для разработчиков" и искать его прямо в запросе.

Ежели это "Дополнительное сведение", то запрос совсем другой надо писать.
---
для поиска реализовали реквизит "имя". Нужно искать по нему.
Алгоритм который выбрали решением кривой хоть и рабочий. Перепишите, как рекомендую.
---
```1c
    И КонтрагентыДополнительныеРеквизиты.Ссылка
```

это ссылка самого элемента справочника
---
Замените

```1c
    И КонтрагентыДополнительныеРеквизиты.Ссылка
```

на

```1c
    И КонтрагентыДополнительныеРеквизиты.Значение
```
---
Вы определитесь, это у Вас "дополнительный реквизит" или "дополнительное сведение"? План видов характеристик один, а поведение разное.
Если "дополнительный реквизит", то Ваша функция должна быть такой:

```1c
    Функция НайдемКонтрагента(КодКонтрагента)

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ Различные

    | КонтрагентыДополнительныеРеквизиты.Ссылка КАК Контрагент
    |ИЗ
    | Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты
    |ГДЕ
    | КонтрагентыДополнительныеРеквизиты.Свойство.Имя = "КодУТ"
    | И КонтрагентыДополнительныеРеквизиты.Значение = &КодКонтрагента";

    Запрос.УстановитьПараметр("КодКонтрагента",КодКонтрагента);

    Результат = Запрос.Выполнить().Выбрать();
    Пока Результат.Следующий() цикл
    БКонтрагент = Результат.Контрагент;
    КонецЦикла;
    Сообщить(БКонтрагент;);
    Возврат БКонтрагент;

    КонецФункции
```

Обратите внимание, что искать элемент плана видов характеристик по наименованию - это еще один кирпич запрос в базу. Правильнее поступить так, как задумано разрабами: Надо установить имя элементу плана видов характеристик в его карточке (форме элемента) в самом низу в группе "Для разработчиков" и искать его прямо в запросе.

Ежели это "Дополнительное сведение", то запрос совсем другой надо писать.
---
Спасибо всем. Заработало вот так, кому нибудь пригодится.

```1c
    &НаСервере
    Функция НайдемКонтрагента(КодКонтрагента)

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    | КонтрагентыДополнительныеРеквизиты.Ссылка КАК Контрагент
    |ИЗ
    | Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты
    |ГДЕ
    | КонтрагентыДополнительныеРеквизиты.Значение = &Значение
    | И КонтрагентыДополнительныеРеквизиты.Свойство.Имя = &Имя";

    Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("КодУТ", Истина);

    Запрос.УстановитьПараметр("Имя", "КодУТ_7fa830250b37400a8c11df50f9bc7e62"); // Это ИМЯ реквизита (не Наименование которое просто = КодУТ, а Имя "для разработчиков")
    Запрос.УстановитьПараметр("Значение",КодКонтрагента); // Это значение Вашего реквизита
    Результат = Запрос.Выполнить().Выбрать();

    Пока Результат.Следующий() цикл
    ИскомыйКонтрагент = Результат.Контрагент;
    КонецЦикла;
    // Сообщить(ИскомыйКонтрагент);
    Возврат ИскомыйКонтрагент;
```