Помогите новичку разобраться с созданием элемента справочника.

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

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


Вот такой код.
По теме из базы знаний
Найденные решения
4. ex3mall 2 03.10.19 21:31 Сейчас в теме
(3)

В смысле написать МногаТекста

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

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

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

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



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

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


то же самое. И короче, и по-пацански.
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. ex3mall 2 03.10.19 21:07 Сейчас в теме
Доброго вечера.

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

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

Либо во внешней обработке поменяйте тип реквизита на "СправочникСсылка.Страны", либо при присвоении значения конвертируйте
НоваяНоменклатура.Страна = Справочники.Страны.НайтиПоНаименованию(Страна);
3. CYCTAH 03.10.19 21:22 Сейчас в теме
(2) Мне как раз и надо понять принцип записи реквизита из строки в СправочникСсылка. А я же могу строку НоваяНоменклатура.Страна = Справочники.Страны.НайтиПоНаименованию(Страна); Заменить на более пацанскую и сделать тоже самое через запрос, это вроде как правильнее?
4. ex3mall 2 03.10.19 21:31 Сейчас в теме
(3)

В смысле написать МногаТекста

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

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

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

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



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

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


то же самое. И короче, и по-пацански.
5. CYCTAH 03.10.19 21:35 Сейчас в теме
Спасибо что так подробно. Еще один маленький вопросик, почему Вы в запросе использовали Подобно а не "=" ?
6. ex3mall 2 03.10.19 21:41 Сейчас в теме
(5) Ну такая традиция))))

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

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

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

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

Знак процента в данном случае обозначает "все что угодно".
Оставьте свое сообщение
Вакансии
Консультант 1С ERP
Москва
зарплата от 200 000 руб. до 250 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 220 000 руб. до 300 000 руб.
Полный день

Старший программист 1С
Москва
зарплата от 120 000 руб. до 250 000 руб.
Полный день

Аналитик 1C
Москва
зарплата от 200 000 руб. до 240 000 руб.
Полный день

Аналитик группы поддержки 1С
Москва
зарплата от 160 000 руб. до 250 000 руб.
Полный день