Как правильно создать элемент справочника по образцу

1. AlexGoldT 08.02.22 18:05 Сейчас в теме
Есть справочник Номенклатура. Создаю ручками шаблон для создания группы элементов номенклатуры - элемент номенклатуры со всеми родителями, видами, ставками и т.п.
Нужно в цикле создавать элементы номенклатуры отличающиеся от образка только кодом, наименованием и артикулом.
Надеялся что хватит Заполнить
NewНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();
NewНоменклатура.Заполнить(ОбразецНоменклатура);
NewНоменклатура.Наименование = НаименованиеНоменклатура;
NewНоменклатура.НаименованиеПолное = НаименованиеНоменклатура;
NewНоменклатура.Артикул= "";
NewНоменклатура.Записать();

Не прохиляло. Как нужно действовать в этом случае? В смысле как практически повторить содержание реквизитов элемента справочника одной командой - "заполнить на основании..."?

ЗЫ, Поставил в тупик метод НайтиПоНаименованию у справочника. И представить не мог что он будет находить помеченные на удаление элементы справочника. У меня не хватает фантазии когда мне в поиске ИНФОРМАЦИИ в базе понадобиться ВСЕГДА элементы справочника с пометкой удаления. Ну я понимаю в СКД строить запросы с поиском удаленных... Но в методах обработки предметной области - нафига? Да еще и без возможности отбросить удаленные (пометка удаления - логическое удаление) записи.
Интересно если я пометил удаление элемент справочника, потом создал новый элемент с таким же кодом и наименованием, а потом кто-то решил помеченный на удаление восстановить...
По теме из базы знаний
Найденные решения
2. maraty 441 08.02.22 18:17 Сейчас в теме
(1) Скопировать()
Создает новый элемент справочника копированием существующего.

Если Не ТоварСсылка.Пустая() Тогда
    Копия = ТоварСсылка.Скопировать();
    Копия.Записать();
КонецЕсли;
AlexGoldT; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. maraty 441 08.02.22 18:17 Сейчас в теме
(1) Скопировать()
Создает новый элемент справочника копированием существующего.

Если Не ТоварСсылка.Пустая() Тогда
    Копия = ТоварСсылка.Скопировать();
    Копия.Записать();
КонецЕсли;
AlexGoldT; +1 Ответить
3. AlexGoldT 08.02.22 18:59 Сейчас в теме
(2) А чем отличается в реалиях метод Заполнить? Где-нибудь можно посмотреть?

Описание:
Заполняет данные элемента данными из другого объекта. Инициирует событие ОбработкаЗаполнения и вызов его процедуры-обработчика в модуле справочника. В ней может размещаться алгоритм, заполняющий данные элемента из переданного значения.
5. maraty 441 09.02.22 09:47 Сейчас в теме
3) Копировать - создает полную копию, Заполнить - мы сами определяем что передать для заполнения и как заполнять. Но тут все в справке написано, нечего дополнить.
6. AlexGoldT 09.02.22 10:12 Сейчас в теме
(5) т.е. в каждом конкретном случае нужно лезть в метод конкретного справочника (в моем случае Номенклатура) ОбработкаЗаполнения что бы понять какие поля будут переноситься, а какие нет? Тут не будет вариант сопоставимые реквизиты переносятся из образца в новый элемент?
7. maraty 441 09.02.22 10:28 Сейчас в теме
(6) Если в обработке заполнения будет пусто, но никакие реквизиты на основании не заполнятся. Но вы можете и не использовать метод Заполнить(). Создаете новый Объект справочника, получаете нужные реквизиты через ОбщегоНазначения.ЗначенияРеквизитовОбъекта или запросом и заполняете новый объект через ЗаполнитьЗначенияСвойств или произвольным алгоритмом.
AlexGoldT; +1 Ответить
8. AlexGoldT 09.02.22 10:31 Сейчас в теме
(7) я образец указывал NewНоменклатура.Заполнить(ОбразецНоменклатура);
ЗЫ. За идею по реквизитам - спасибо.
4. AlexGoldT 08.02.22 19:10 Сейчас в теме
С "Скопировать" все получилось - спасибо
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот