Здраствуйте, есть справочник "Номенклатура". Необходимо поочередно заполнять реквизиты и записать в справочник Номенклатура. Сделал поочередное заполнение, но не записывает ни в поля формы, ни в справочник, т.к. не могу понять как записывать через ОписаниеОповещения.
Само задание звучит так:
Создать обработку «ПомощникЗаполненияНоменклатуры». В данной обработке поочередно заполняются стандартные и добавленные реквизиты. После заполнения всех реквизитов должен создаться элемент справочника «Номенклатура».
Пример: При запуске обработки открывается форма обработки с полем ввода «Код» (тип данных поля ввода должен быть такой же как у реквизита Код в справочнике «Номенклатура»). После заполнения «Кода» необходимо нажать команду «Далее», вместо «Код» должно появиться поле ввода «Наименование» (тип данных поля ввода должен быть такой же как у реквизита Наименование в справочнике «Номенклатура»). После заполнения «Наименования» необходимо нажать команду «Далее» и т.д.. После заполнения всех реквизитов должен создаться элемент справочника «Номенклатура» с заполненными реквизитами ранее введенными значениями. Реализовать обработку таким образом, чтобы при добавлении новых реквизитов все работало без корректировки обработки (и в обработке появлялись новые реквизиты для заполнения), для этого необходимо использовать метаданные и программное создание элементов формы в обработке.
Мой код:

```1c
    &НаКлиенте
    Процедура ПриОткрытии(Отказ)
    ЧтоДелатьПослеВводаКода = Новый ОписаниеОповещения("ПослеВводаКода", ЭтотОбъект);
    ПоказатьВводСтроки(ЧтоДелатьПослеВводаКода, , "Введите код номенклатуры");
    КонецПроцедуры
    &НаКлиенте
    Процедура ПослеВводаКода (Строка, ДополнительныеПараметры) Экспорт
    Если Строка = Неопределено Тогда
    Возврат;
    КонецЕсли;

    Код = Строка;

    ЧтоДелатьПослеВводаНаименования = Новый ОписаниеОповещения("ПослеВводаНаименования", ЭтотОбъект);
    ПоказатьВводСтроки(ЧтоДелатьПослеВводаНаименования, , "Введите наименование номенклатуры");
    КонецПроцедуры

    &НаКлиенте
    Процедура ПослеВводаНаименования (Строка, ДополнительныеПараметры) Экспорт
    Если Строка = Неопределено Тогда
    Возврат;
    КонецЕсли;

    Наименование = Строка;

    ЧтоДелатьПослеВводаПолногоНаименования = Новый ОписаниеОповещения("ПослеВводаПолногоНаименования", ЭтотОбъект);
    ПоказатьВводСтроки(ЧтоДелатьПослеВводаПолногоНаименования, , "Введите полное наименование номенклатуры");
    КонецПроцедуры

    &НаКлиенте
    Процедура ПослеВводаПолногоНаименования (Строка, ДополнительныеПараметры) Экспорт
    Если Строка = Неопределено Тогда
    Возврат;
    КонецЕсли;

    ПолноеНаименование = Строка;

    ЧтоДелатьПослеВводаСтавкиНДС = Новый ОписаниеОповещения("ПослеВводаСтавкиНДС", ЭтотОбъект);
    ПоказатьВводЗначения(ЧтоДелатьПослеВводаСтавкиНДС, , "Введите ставку НДС номенклатуры",Тип("ПеречислениеСсылка.СтавкиНДС"));
    КонецПроцедуры

    &НаКлиенте
    Процедура ПослеВводаСтавкиНДС (Значение, ДополнительныеПараметры) Экспорт
    Если Значение = Неопределено Тогда
    Возврат;
    КонецЕсли;

    СтавкаНДС = Значение;

    ЧтоДелатьПослеВводаМинКоличества = Новый ОписаниеОповещения("ПослеВводаМинКоличества", ЭтотОбъект);
    ПоказатьВводСтроки(ЧтоДелатьПослеВводаМинКоличества, , "Введите минимальное количество");
    КонецПроцедуры

    &НаКлиенте
    Процедура ПослеВводаМинКоличества (Число, ДополнительныеПараметры) Экспорт
    Если Число = Неопределено Тогда
    Возврат;
    КонецЕсли;
    МинКоличество = Число;
    КонецПроцедуры

    &НаСервере
    Процедура ЗаписатьНаСервере() Экспорт

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

    &НаКлиенте
    Процедура Записать(Команда)

    КонецПроцедуры
```
---
Соберите сначала список реквизитов из метаданных - вы же не знаете заведомо какие "добавленные" реквизиты есть в справочнике.
Решение через ОписаниеОповещения или "программное создание элементов формы в обработке" мне кажется не оптимальным – достаточно одного поля ввода непосредственно на форме и служебной таблицы в реквизитах.
---
Соберите сначала список реквизитов из метаданных - вы же не знаете заведомо какие "добавленные" реквизиты есть в справочнике.
Решение через ОписаниеОповещения или "программное создание элементов формы в обработке" мне кажется не оптимальным – достаточно одного поля ввода непосредственно на форме и служебной таблицы в реквизитах.
---
Можете пожалуйста объяснить, как вы это сделали?
---
Так код открыт, можете почитать. При создании на сервере заполняете служебную таблицу из метаданных справочника – нужно имя, синоним и тип значения реквизита. Кнопками навигации (Далее / Назад) переходим от реквизита к реквизиту, меняя заголовок поля ввода, ограничение типов и само значение.
---
Большое спасибо, пойду разбираться.
---
Что еще за "ПослеВводаПолногоНаименования"?
Откуда взялось"ПослеВводаСтавкиНДС"?
А как же вот эта фраза "для этого необходимо использовать метаданные" из Вашего задания?
Только предопределенные реквизиты Код и Наименование у Вас стандартные. А все остальные - нестандартное и заранее неизвестное.
---
К преподавателю. Это все вопросы к преподавателю, ты ему платишь за ответы и объяснения, пусть работает.