Есть два поля ввода "НоменклатурныйНомерПолеВвода" с типом СправочникСсылка.Номенклатура и "НаименованиеОбъектаПолеВвода" с типом строка. Нужно чтобы при выборе из справочника Номенклатура, НоменклатурныйНомерПолеВвода заполнялось Номером (НоменклатурныйНомер), а НаименованиеОбъектаПолеВвода Наименованием.

```1c
    Процедура НоменклатурныйНомерПолеВводаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)

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

    Запрос.УстановитьПараметр("Наименование", ВыбранноеЗначение);
    Выборка = Запрос.Выполнить().Выбрать();

    Пока Выборка.Следующий() Цикл
    НоменклатурныйНомерПолеВвода = Выборка.НоменклатурныйНомер;
    КонецЦикла;

    НаименованиеОбъектаПолеВвода = ВыбранноеЗначение;

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

НаименованиеОбъектаПолеВвода - заполняется правильно - наименованием, а вот НоменклатурныйНомерПолеВвода вместо номера тоже подставляется наименование
---
Если тип будет строка, то как тогда выбирать из справочника?
делаем активной кнопку выбора,
и в процедуре начало выбора обыгрываем программный выбор элемента списка справочника.
По результату выбора, присваиваем в этот реквизит ВыранныйЭлемент.номер.

Тебе все равно, придется строковый тип делать, т.к. номер у справочника, - это строка.
Либо делай коряво, вешай еще одно строковое поле, по аналогии с НаименованиеОбъектаПолеВвода
Выбирать будешь из ссылочного поля, а по результату заполняй в два строковых поля свои данные.
---
Так работает

```1c
    Процедура НоменклатурныйНомерПолеВводаНачалоВыбора(Элемент, СтандартнаяОбработка)
    ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбора",, Элемент);
    КонецПроцедуры

    Процедура НоменклатурныйНомерПолеВводаОбработкаВыбора(Элемент, ВыбранныйЭлемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    НоменклатурныйНомерПолеВвода = ВыбранныйЭлемент.НоменклатурныйНомер;
    НаименованиеОбъектаПолеВвода = ВыбранныйЭлемент.Наименование;
    КонецПроцедуры
```
---
НоменклатурныйНомерПолеВвода вместо номера тоже подставляется наименование
у тебя же тип, справочник ссылка.
Там не может быть наименование, там ссылка и остается. А визуально ты видишь наименование - потому что представление основное ссылки - это наименование.

Если нужен номер, то и тип должен быть строка
---
Если тип будет строка, то как тогда выбирать из справочника?

Составной тип строка и ссылка выдает ошибку

Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
Номенклатура.Наименование <<?>>= &Наименование
---
Если тип будет строка, то как тогда выбирать из справочника?
делаем активной кнопку выбора,
и в процедуре начало выбора обыгрываем программный выбор элемента списка справочника.
По результату выбора, присваиваем в этот реквизит ВыранныйЭлемент.номер.

Тебе все равно, придется строковый тип делать, т.к. номер у справочника, - это строка.
Либо делай коряво, вешай еще одно строковое поле, по аналогии с НаименованиеОбъектаПолеВвода
Выбирать будешь из ссылочного поля, а по результату заполняй в два строковых поля свои данные.
---
выбираю элемент справочника, но значение поля ввода не изменяется

```1c
    Процедура НоменклатурныйНомерПолеВводаНачалоВыбора(Элемент, СтандартнаяОбработка)
    ФормаП = Справочники.Номенклатура.ПолучитьФормуВыбора("ФормаСписка",ЭтаФорма);
    ФормаП.Открыть();
    КонецПроцедуры

    Процедура НоменклатурныйНомерПолеВводаОбработкаВыбора(Элемент, ВыбранныйЭлемент, СтандартнаяОбработка)
    НоменклатурныйНомерПолеВвода = ВыбранныйЭлемент.НоменклатурныйНомер;
    КонецПроцедуры
```
---
Так работает

```1c
    Процедура НоменклатурныйНомерПолеВводаНачалоВыбора(Элемент, СтандартнаяОбработка)
    ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбора",, Элемент);
    КонецПроцедуры

    Процедура НоменклатурныйНомерПолеВводаОбработкаВыбора(Элемент, ВыбранныйЭлемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    НоменклатурныйНомерПолеВвода = ВыбранныйЭлемент.НоменклатурныйНомер;
    НаименованиеОбъектаПолеВвода = ВыбранныйЭлемент.Наименование;
    КонецПроцедуры
```
---
Запрос.УстановитьПараметр("Наименование", ВыбранноеЗначение);

    Запрос.УстановитьПараметр("Наименование", ВыбранноеЗначение.Наименование);
и все заработает
---
Тоже самое
---
Значит у Вас Наименование неограниченной длины? Тогда:
| Номенклатура.Ссылка = &Наименование";
и
Запрос.УстановитьПараметр("Наименование", ВыбранноеЗначение);
---
Результат тот же
---
как правильно в (1) замечено вместо ссылки выводится ее представление - нужен номер если поменять представление будет номер вместо наименования номенклатуры везде, если такое поведение не надо и требуется номер только здесь то придется поменять тип у поля ввода - использовать свой реквизит тип строка у которого подменять значение как угодно