Помогите новичку разобраться с созданием элемента справочника.
Добрый вечер, я начинающий программист, прошу не пинать сильно, пишу не сразу, а потратил уже приличное количество часов, но решения не могу найти. Помогите разобраться с принципом работы в этом моменте. У меня УФ. Есть Справочники "Валюты" и "Страны". В справочнике "валюты" есть стандартный реквизит "наименование" (строка) и добавил еще один "страна" (СправочникСсылка.Страны). Во внешней обработке у меня 2 поля "Наименование"(Строка) и "Страна"(Строка) и кнопка "создать валюту". По нажатию "Создать Валюту" хочу сделать Чтобы в Справочнике "Валюты" в наименовании стояло, то что я указал во внешней форме в поле "Наименование", а в поле "Страна" то что указал в поле "Страна" во внешней обработке, ну и конечно же страна должна создаться в справочнике "Страны". Но что то у меня не совсем получается, наименование записывает норм, а вот страны уже нет. Помогите кто чем может)
Вот такой код.
НоваяНоменклатура = Справочники.Валюты.СоздатьЭлемент();
НоваяНоменклатура.Наименование = Наименование;
НоваяНоменклатура.Страна = Страна;
НоваяНоменклатура.Записать();
Вот такой код.
По теме из базы знаний
- Под капотом управляемых форм
- Повышение качества разработки. Статья 2. Абстракции, их свойства и роль в классических парадигмах программирования
- Конфигурация Flowcon: Набор инструментов для управления задачами, проектами и бизнесом в 1С
- Бизнес-аналитика с помощью Power BI
- Автоматизация REST интеграций
Найденные решения
(2) Мне как раз и надо понять принцип записи реквизита из строки в СправочникСсылка. А я же могу строку НоваяНоменклатура.Страна = Справочники.Страны.НайтиПоНаименованию(Страна); Заменить на более пацанскую и сделать тоже самое через запрос, это вроде как правильнее?
(3)
В смысле написать МногаТекста
Конечно можете, но на мой взгляд вот это:
то же самое. И короче, и по-пацански.
В смысле написать МногаТекста
ЗапросСтраны = Новый Запрос("ВЫБРАТЬ СправочникСтраны.Ссылка КАК Страна
| из Справочник.Страны КАК СправочникСтраны
| ГДЕ СправочникСтраны.Наименование ПОДОБНО &НаименованиеСтраны");
ЗапросСтраны.УстановитьПараметр("НаименованиеСтраны", Объект.Страна);
Выборка = ЗапросСтраны.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
НоваяНоменклатура.Страна = Выборка.Страна;
КонецЕсли;
ПоказатьКонечно можете, но на мой взгляд вот это:
НоваяНоменклатура.Страна = Справочники.Страны.НайтиПоНаименованию(Страна);
то же самое. И короче, и по-пацански.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Доброго вечера.
У Вас тип реквизита "Страна" в справочнике - СправочникСсылка.Страны.
А в обработке тип реквизита "Страна" - строка.
Вы не сможете запихнуть тип "Строка" в тип "СправочникСсылка.Страны" без преобразования.
Либо во внешней обработке поменяйте тип реквизита на "СправочникСсылка.Страны", либо при присвоении значения конвертируйте
НоваяНоменклатура.Страна = Справочники.Страны.НайтиПоНаименованию(Страна);
У Вас тип реквизита "Страна" в справочнике - СправочникСсылка.Страны.
А в обработке тип реквизита "Страна" - строка.
Вы не сможете запихнуть тип "Строка" в тип "СправочникСсылка.Страны" без преобразования.
Либо во внешней обработке поменяйте тип реквизита на "СправочникСсылка.Страны", либо при присвоении значения конвертируйте
НоваяНоменклатура.Страна = Справочники.Страны.НайтиПоНаименованию(Страна);
(2) Мне как раз и надо понять принцип записи реквизита из строки в СправочникСсылка. А я же могу строку НоваяНоменклатура.Страна = Справочники.Страны.НайтиПоНаименованию(Страна); Заменить на более пацанскую и сделать тоже самое через запрос, это вроде как правильнее?
(3)
В смысле написать МногаТекста
Конечно можете, но на мой взгляд вот это:
то же самое. И короче, и по-пацански.
В смысле написать МногаТекста
ЗапросСтраны = Новый Запрос("ВЫБРАТЬ СправочникСтраны.Ссылка КАК Страна
| из Справочник.Страны КАК СправочникСтраны
| ГДЕ СправочникСтраны.Наименование ПОДОБНО &НаименованиеСтраны");
ЗапросСтраны.УстановитьПараметр("НаименованиеСтраны", Объект.Страна);
Выборка = ЗапросСтраны.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
НоваяНоменклатура.Страна = Выборка.Страна;
КонецЕсли;
ПоказатьКонечно можете, но на мой взгляд вот это:
НоваяНоменклатура.Страна = Справочники.Страны.НайтиПоНаименованию(Страна);
то же самое. И короче, и по-пацански.
(5) Ну такая традиция))))
Равенство - для численных и ссылочных типов.
Со строками лучше работать через "Подобно".
Например, "Беларусь" = "Беларусь", но "Беларусь" <> "беларусь".
А вот конструкция ПОДОБНО в случае "%Беларусь%" ПОДОБНО "Республика Беларусь" выдаст нужный результат.
Знак процента в данном случае обозначает "все что угодно".
Равенство - для численных и ссылочных типов.
Со строками лучше работать через "Подобно".
Например, "Беларусь" = "Беларусь", но "Беларусь" <> "беларусь".
А вот конструкция ПОДОБНО в случае "%Беларусь%" ПОДОБНО "Республика Беларусь" выдаст нужный результат.
Знак процента в данном случае обозначает "все что угодно".
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот