Добрый вечер, я начинающий программист, прошу не пинать сильно, пишу не сразу, а потратил уже приличное количество часов, но решения не могу найти. Помогите разобраться с принципом работы в этом моменте. У меня УФ. Есть Справочники "Валюты" и "Страны". В справочнике "валюты" есть стандартный реквизит "наименование" (строка) и добавил еще один "страна" (СправочникСсылка.Страны). Во внешней обработке у меня 2 поля "Наименование"(Строка) и "Страна"(Строка) и кнопка "создать валюту". По нажатию "Создать Валюту" хочу сделать Чтобы в Справочнике "Валюты" в наименовании стояло, то что я указал во внешней форме в поле "Наименование", а в поле "Страна" то что указал в поле "Страна" во внешней обработке, ну и конечно же страна должна создаться в справочнике "Страны". Но что то у меня не совсем получается, наименование записывает норм, а вот страны уже нет. Помогите кто чем может)

```1c
    НоваяНоменклатура = Справочники.Валюты.СоздатьЭлемент();
    НоваяНоменклатура.Наименование = Наименование;
    НоваяНоменклатура.Страна = Страна;
    НоваяНоменклатура.Записать();
```

Вот такой код.
---
Мне как раз и надо понять принцип записи реквизита из строки в СправочникСсылка. А я же могу строку НоваяНоменклатура.Страна = Справочники.Страны.НайтиПоНаименованию(Страна); Заменить на более пацанскую и сделать тоже самое через запрос, это вроде как правильнее?
---
В смысле написать МногаТекста

```1c
    ЗапросСтраны = Новый Запрос("ВЫБРАТЬ СправочникСтраны.Ссылка КАК Страна
    | из Справочник.Страны КАК СправочникСтраны
    | ГДЕ СправочникСтраны.Наименование ПОДОБНО &НаименованиеСтраны");

    ЗапросСтраны.УстановитьПараметр("НаименованиеСтраны", Объект.Страна);

    Выборка = ЗапросСтраны.Выполнить().Выбрать();

    Если Выборка.Следующий() Тогда
    НоваяНоменклатура.Страна = Выборка.Страна;
    КонецЕсли;
```

Конечно можете, но на мой взгляд вот это:

```1c
    НоваяНоменклатура.Страна = Справочники.Страны.НайтиПоНаименованию(Страна);
```

то же самое. И короче, и по-пацански.
---
Доброго вечера.

У Вас тип реквизита "Страна" в справочнике - СправочникСсылка.Страны.
А в обработке тип реквизита "Страна" - строка.

Вы не сможете запихнуть тип "Строка" в тип "СправочникСсылка.Страны" без преобразования.

Либо во внешней обработке поменяйте тип реквизита на "СправочникСсылка.Страны", либо при присвоении значения конвертируйте
НоваяНоменклатура.Страна = Справочники.Страны.НайтиПоНаименованию(Страна);
---
Мне как раз и надо понять принцип записи реквизита из строки в СправочникСсылка. А я же могу строку НоваяНоменклатура.Страна = Справочники.Страны.НайтиПоНаименованию(Страна); Заменить на более пацанскую и сделать тоже самое через запрос, это вроде как правильнее?
---
В смысле написать МногаТекста

```1c
    ЗапросСтраны = Новый Запрос("ВЫБРАТЬ СправочникСтраны.Ссылка КАК Страна
    | из Справочник.Страны КАК СправочникСтраны
    | ГДЕ СправочникСтраны.Наименование ПОДОБНО &НаименованиеСтраны");

    ЗапросСтраны.УстановитьПараметр("НаименованиеСтраны", Объект.Страна);

    Выборка = ЗапросСтраны.Выполнить().Выбрать();

    Если Выборка.Следующий() Тогда
    НоваяНоменклатура.Страна = Выборка.Страна;
    КонецЕсли;
```

Конечно можете, но на мой взгляд вот это:

```1c
    НоваяНоменклатура.Страна = Справочники.Страны.НайтиПоНаименованию(Страна);
```

то же самое. И короче, и по-пацански.
---
Спасибо что так подробно. Еще один маленький вопросик, почему Вы в запросе использовали Подобно а не "=" ?
---
Ну такая традиция))))

Равенство - для численных и ссылочных типов.

Со строками лучше работать через "Подобно".

Например, "Беларусь" = "Беларусь", но "Беларусь" <> "беларусь".

А вот конструкция ПОДОБНО в случае "%Беларусь%" ПОДОБНО "Республика Беларусь" выдаст нужный результат.

Знак процента в данном случае обозначает "все что угодно".