созданию номенклатуру программно, беру значения из excel, но вот попросили добавить новые реквезиты и никак не могу их назначить... Как их правильно назначить? Для примера написал какие значения должны бить, а что дальше делать не знаю...

```1c
    НоваяНомеклатура.Наименование = строка.Наименование;
    НоваяНомеклатура.НаименованиеПолное = строка.Наименование;
    НоваяНомеклатура.Артикул = строка.Артикул;
    НоваяНомеклатура.ЕдиницаИзмерения = ЕдиницыИзмерения;
    НоваяНомеклатура.ЕдиницаДляОтчетов = ЕдиницыИзмерения;
    НоваяНомеклатура.Производитель = НайтиПроизводителя(строка.Производитель);
    НоваяНомеклатура.Родитель = НайтиРодителя(строка.Группа);
    НоваяНомеклатура.ВидНоменклатуры = ВидТовара;

    ///// Вот тут ниже я не знаю дальше как вставить значения...

    //Параметры для удачного создания номенклатуры
    //НоваяНомеклатура.Качество = "новое";
    //НоваяНомеклатура.ГруппаФинансовогоУчета = "Товары";
    //НоваяНомеклатура.СтавкаНДС = 18%;
    //НоваяНомеклатура.ТипНоменклатуры = "товары";
    //НоваяНомеклатура.СхемаОбеспечения = "Основная схема обеспечения (создана при обновлении ИБ)";
    //НоваяНомеклатура.РейтингПродаж = "низкий";
```
---
///// Вот тут ниже я не знаю дальше как вставить значения...
        //Параметры для удачного создания номенклатуры
        //НоваяНомеклатура.Качество = "новое";
        //НоваяНомеклатура.ГруппаФинансовогоУчета = "Товары";
        //НоваяНомеклатура.СтавкаНДС = 18%;
        //НоваяНомеклатура.ТипНоменклатуры = "товары";
        //НоваяНомеклатура.СхемаОбеспечения = "Основная схема обеспечения (создана при обновлении ИБ)";
        //НоваяНомеклатура.РейтингПродаж = "низкий";

НАчнем с простого (у меня УТ11)... открываешь конфигурацию открываешь справочники.Номенклатура и смотришь что в реквизитах
например "Качество"
Качество является ссылкой на перечисление и писать нужно Код

```1c
    НоваяНомеклатура.Качество = перечисления.ГрадацииКачества.Новый;
```

Если ты начнешь писать "перечисления." он тебе начнет подсказывать в 1с конфигураторе
Идем дальше ГруппаФинансовогоУчета является ссылкой на справочник

```1c
    НоваяНомеклатура.ГруппаФинансовогоУчета = справочники.ГруппыФинансовогоУчетаНоменклатуры.НайтиПоНаименованию("Товары");
```

соответственно справочнике ГруппыФинансовогоУчетаНоменклатуры у тебя должна быть создана запись "Товары"

```1c
    НоваяНомеклатура.СтавкаНДС =перечисления.СтавкиНДС.НДС18;
    НоваяНомеклатура.ТипНоменклатуры = перечисления.ТипыНоменклатуры.Товар;
    НоваяНомеклатура.СхемаОбеспечения = справочники.СхемыОбеспечения.НайтиПоНаименованию("Основная схема обеспечения (создана при обновлении ИБ)");
    НоваяНомеклатура.РейтингПродаж = справочники.РейтингиПродажНоменклатуры.НайтиПоНаименованию("низкий");
```

вообще у тебя в коде есть Функция НайтиПроизводителя();
которая скорее всего ищет производителя в справочнике "производители" и если не находит то создает. можешь по аналогии создать свои функции на справочники ГруппаФинансовогоУчета СхемыОбеспечения РейтингиПродажНоменклатуры
И код в функции примерно такой

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

    Если ссылкаНаПроизводителя = справочники.производители.ПустаяСсылка() тогда

    спробъект = справочники.Производители.СоздатьЭлемент();
    спробъект.Наименование = Производитель;
    // какие-то обязательные реквизиты ещё заполняются;
    спробъект.Записать();
    возврат спробъект.Ссылка();
    иначе
    возврат ссылкаНаПроизводителя ;
    Конецесли;

    Конецфункции
```
---
```1c
    НоваяНоменклатура = Справочники.Номенклатура.СоздатьЭлемент()
    НоваяНомеклатура.Наименование = строка.Наименование;
    НоваяНомеклатура.НаименованиеПолное = строка.Наименование;
    НоваяНомеклатура.Артикул = строка.Артикул;
    НоваяНомеклатура.ЕдиницаИзмерения = ЕдиницыИзмерения;
    НоваяНомеклатура.ЕдиницаДляОтчетов = ЕдиницыИзмерения;
    НоваяНомеклатура.Производитель = НайтиПроизводителя(строка.Производитель);
    НоваяНомеклатура.Родитель = НайтиРодителя(строка.Группа);
    НоваяНомеклатура.ВидНоменклатуры = ВидТовара;
    НоваяНомеклатура.Записать()
```
---
у меня проблема тут, а не в том что я не знаю как записывать((

```1c
    //Параметры для удачного создания номенклатуры
    //НоваяНомеклатура.Качество = "новое";
    //НоваяНомеклатура.ГруппаФинансовогоУчета = "Товары";
    //НоваяНомеклатура.СтавкаНДС = 18%;
    //НоваяНомеклатура.ТипНоменклатуры = "товары";
    //НоваяНомеклатура.СхемаОбеспечения = "Основная схема обеспечения (создана при обновлении ИБ)";
    //НоваяНомеклатура.РейтингПродаж = "низкий";
```
---
точно так же пишите функции поиска.
---
Без функций поиска никак? Я пока вроде смог сделать пару пунктов
НоваяНомеклатура.СтавкаНДС = перечисления.СтавкиНДС.НДС18;
НоваяНомеклатура.Качество = Справочники.Качество.Новый;
---
Без функций поиска только предопределенные значения или перечисления.
---
Если данные их excel повторяются, сделайте соответствия справочник, при дальнейшем будите находить в нем значения, которые уже есть в вашей базе
---
Предопредление пойдет, мне нужно заполнить любымы значениями, лишь бы номенклатура создавалась без проблем
---
так а в чем проблема? Код писать не умеете?
---
Вот это не работает
 НоваяНомеклатура.Качество = Справочники.Качество.Новый;
---
А есть справочник Качество? И в нём есть предопределённый элемент Новый? Тогда должно работать.
---
у вы должны иметь представление какому реквизиту номенклатуры присвоить данные значение. Качество какой тип имеет? ставка НДС ищется через поиск с в справочнике Справочники.СтавкиНДС.НайтиПоНаименованию("18%) - это как пример, ни знаю как у вас в базе ставки записаны, может отделять числа нужно и искать по реквизиту ставка.
ТипНоменклатуры это скорее всего перечисление нужно подставлять "ТипыНоменклатуры" или "ВидыНоменклатуры", Перечисления.ТипыНоменклатуры["Товары"]
---
///// Вот тут ниже я не знаю дальше как вставить значения...
        //Параметры для удачного создания номенклатуры
        //НоваяНомеклатура.Качество = "новое";
        //НоваяНомеклатура.ГруппаФинансовогоУчета = "Товары";
        //НоваяНомеклатура.СтавкаНДС = 18%;
        //НоваяНомеклатура.ТипНоменклатуры = "товары";
        //НоваяНомеклатура.СхемаОбеспечения = "Основная схема обеспечения (создана при обновлении ИБ)";
        //НоваяНомеклатура.РейтингПродаж = "низкий";

НАчнем с простого (у меня УТ11)... открываешь конфигурацию открываешь справочники.Номенклатура и смотришь что в реквизитах
например "Качество"
Качество является ссылкой на перечисление и писать нужно Код

```1c
    НоваяНомеклатура.Качество = перечисления.ГрадацииКачества.Новый;
```

Если ты начнешь писать "перечисления." он тебе начнет подсказывать в 1с конфигураторе
Идем дальше ГруппаФинансовогоУчета является ссылкой на справочник

```1c
    НоваяНомеклатура.ГруппаФинансовогоУчета = справочники.ГруппыФинансовогоУчетаНоменклатуры.НайтиПоНаименованию("Товары");
```

соответственно справочнике ГруппыФинансовогоУчетаНоменклатуры у тебя должна быть создана запись "Товары"

```1c
    НоваяНомеклатура.СтавкаНДС =перечисления.СтавкиНДС.НДС18;
    НоваяНомеклатура.ТипНоменклатуры = перечисления.ТипыНоменклатуры.Товар;
    НоваяНомеклатура.СхемаОбеспечения = справочники.СхемыОбеспечения.НайтиПоНаименованию("Основная схема обеспечения (создана при обновлении ИБ)");
    НоваяНомеклатура.РейтингПродаж = справочники.РейтингиПродажНоменклатуры.НайтиПоНаименованию("низкий");
```

вообще у тебя в коде есть Функция НайтиПроизводителя();
которая скорее всего ищет производителя в справочнике "производители" и если не находит то создает. можешь по аналогии создать свои функции на справочники ГруппаФинансовогоУчета СхемыОбеспечения РейтингиПродажНоменклатуры
И код в функции примерно такой

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

    Если ссылкаНаПроизводителя = справочники.производители.ПустаяСсылка() тогда

    спробъект = справочники.Производители.СоздатьЭлемент();
    спробъект.Наименование = Производитель;
    // какие-то обязательные реквизиты ещё заполняются;
    спробъект.Записать();
    возврат спробъект.Ссылка();
    иначе
    возврат ссылкаНаПроизводителя ;
    Конецесли;

    Конецфункции
```
---
вот вам самое гениальное решение )))

```1c
    скопируем = справочники.Номенклатура.НайтиПоКоду("00-00091526");
    новаяНоменклатура = скопируем.Скопировать();
```

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