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

```1c
    НСтрк = НовыйДокумент.Комплектующие.Добавить();
    Для каждого СтрокаМассив из МассивКолонок Цикл

    ТекущееЗначение = Excel.Cells(СтрокаОтсчета, СтрокаМассив.НомерКолонки).Value;
    НСтрк.Количество = "1";
    НСтрк.ЕдиницаИзмерения = Справочники.Номенклатура.НайтиПоНаименованию(Excel.Cells(СтрокаОтсчета, 2).Text, Истина).БазоваяЕдиницаИзмерения;
    //Нстрк.Коэффициент = ;
    ИмяКолонки = Excel.Cells(1, СтрокаМассив.НомерКолонки).Text;
    Если ИмяКолонки = "Номенклатура" Тогда
    НСтрк.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Excel.Cells(СтрокаОтсчета, 2).Text, Истина); //Объект.Номенклатура;
    //ИначеЕсли ИмяКолонки = "КоличествоОстатокУУ" Тогда
    // НСтрк.Количество = ТекущееЗначение;

    КонецЕсли;
    КонецЦикла;
```

Вот это

```1c
    НСтрк.ЕдиницаИзмерения = Справочники.Номенклатура.НайтиПоНаименованию(Excel.Cells(СтрокаОтсчета, 2).Text, Истина).БазоваяЕдиницаИзмерения;
```

Вот полный код

```1c
    Процедура ЗагрузитьНаСервере()
    Попытка
    Excel = Новый COMОбъект("Excel.Application");
    Excel.WorkBooks.Open(Объект.ФайлExcel);
    Исключение
    Сообщить("При открытии файла произошла ошибка! Операция прервана!");
    Сообщить(ОписаниеОшибки());
    Возврат;
    КонецПопытки;

    Попытка
    Excel.Sheets(1).Select();
    Исключение
    Excel.ActiveWorkbook.Close();
    Excel = 0;
    Сообщить("Первый лист не найден!");
    ОтменитьТранзакцию();
    Возврат;
    КонецПопытки;

    vExcel = Лев(Excel.Version, Найти(Excel.Version,".")-1);
    Если vExcel = "8" тогда
    КоличествоСтрок = Excel.Cells.CurrentRegion.Rows.Count;
    КоличествоКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13);
    Иначе
    КоличествоСтрок = Excel.Cells(1,1).SpecialCells(11).Row;
    КоличествоКолонок = Excel.Cells(1,1).SpecialCells(11).Column;
    Конецесли;

    МассивКолонок = Новый ТаблицаЗначений;
    МассивКолонок.Колонки.Добавить("НомерКолонки");
    МассивКолонок.Колонки.Добавить("НазваниеКолонки");
    Для КолонкаОтсчета = 1 по КоличествоКолонок Цикл
    ИмяКолонки = Excel.Cells(1, КолонкаОтсчета).Text;

    ИмяБезПробелов = СтрЗаменить(ИмяКолонки," ",");

    Если НЕ НаличиеРеквизитаТЧ(ИмяБезПробелов, Метаданные.Документы.КомплектацияНоменклатуры, "Комплектующие") Тогда
    //Сообщить("Не найден реквизит с именем " + ИмяБезПробелов + "! Колонка не будет загружена!");
    Иначе
    НовСтрока = МассивКолонок.Добавить();
    НовСтрока.НомерКолонки = КолонкаОтсчета;
    НовСтрока.НазваниеКолонки = ИмяБезПробелов;
    КонецЕсли;
    КонецЦикла;

    //Создание документа.запись

    Если МассивКолонок.Количество() <> 0 и МассивКолонок.НайтиСтроки(Новый Структура("НазваниеКолонки", "Номенклатура")).Количество() <> 0 Тогда
    Склад = Справочники.Склады.Ячейка;

    СозданныеДокументы = Новый Соответствие;

    Для СтрокаОтсчета = 2 по КоличествоСтрок Цикл
    Номенклатура= Справочники.Номенклатура.НайтиПоНаименованию(Excel.Cells(СтрокаОтсчета, 4).Text, Истина);
    НовыйДокумент = СозданныеДокументы[Номенклатура];

    Если НовыйДокумент = Неопределено Тогда

    НовыйДокумент = Документы.КомплектацияНоменклатуры.СоздатьДокумент();
    НовыйДокумент.Дата = ТекущаяДата();
    НовыйДокумент.Организация = Справочники.Организации.НайтиПоНаименованию(", Истина); //Объект.Организация;
    НовыйДокумент.ВидКомплектации = Перечисления.ВидыКомплектации.Сборка;
    НовыйДокумент.Склад = Склад;
    НовыйДокумент.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Excel.Cells(СтрокаОтсчета, 4).Text, Истина);
    НовыйДокумент.Количество = "1";
    //НовыйДокумент.Коэффициент = ;
    НовыйДокумент.ОтражатьВБухгалтерскомУчете = Истина;
    //НовыйДокумент.ЕдиницаИзмерения = Номенклатура.БазоваяЕдиницаИзмерения;
    //НовыйДокумент.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина);
    НовыйДокумент.ВидОперации = Перечисления.ВидыОперацийКомплектацияНоменклатуры.КомплектацияНоменклатуры;
    НовыйДокумент.НДСвСтоимостиТоваров = Перечисления.ДействиеНДСВСтоимостиТоваров.НеИзменять;
    //НовыйДокумент.СчетУчетаБУ = ПланыСчетов.Хозрасчетный.НайтиПоНаименованию("41.01", Истина);

    СозданныеДокументы.Вставить(Номенклатура,НовыйДокумент);
    КонецЕсли;

    Если Excel.Cells(СтрокаОтсчета, 9).Value = 1 Тогда
    НСтрк = НовыйДокумент.Комплектующие.Добавить();
    Для каждого СтрокаМассив из МассивКолонок Цикл

    ТекущееЗначение = Excel.Cells(СтрокаОтсчета, СтрокаМассив.НомерКолонки).Value;
    НСтрк.Количество = "1";
    НСтрк.ЕдиницаИзмерения = Справочники.Номенклатура.НайтиПоНаименованию(Excel.Cells(СтрокаОтсчета, 2).Text, Истина).БазоваяЕдиницаИзмерения.Наименование;
    //Нстрк.Коэффициент = ;
    ИмяКолонки = Excel.Cells(1, СтрокаМассив.НомерКолонки).Text;
    Если ИмяКолонки = "Номенклатура" Тогда
    НСтрк.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Excel.Cells(СтрокаОтсчета, 2).Text, Истина); //Объект.Номенклатура;
    //ИначеЕсли ИмяКолонки = "КоличествоОстатокУУ" Тогда
    // НСтрк.Количество = ТекущееЗначение;

    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;

    Для каждого КлючИЗначение из СозданныеДокументы Цикл
    НовыйДокумент = КлючИЗначение.Значение;
    НовыйДокумент.Записать();

    Сообщить("Создан и заполнен документ " + Строка(НовыйДокумент));
    КонецЦикла;
    Иначе
    Сообщить("В Excel файле не достаточно данных для заполнения документа!");
    КонецЕсли;

    Excel.DisplayAlerts = 0;
    Excel.Quit();
    Excel.DisplayAlerts = 1;
    КонецПроцедуры
```

Если что-то не правильно, то простите.
---
```1c
    НСтрк.ЕдиницаИзмерения = Справочники.Номенклатура.НайтиПоНаименованию(Excel.Cells(СтрокаОтсчета, 2).Text, Истина).БазоваяЕдиницаИзмерения.Наименование;
```

а по Справочники.Номенклатура.НайтиПоНаименованию(Excel.Cells(СтрокаОтсчета, 2).Text, Истина) номенклатура находится ?
Если находится, то есть ли у этой номенклатуры базовая единица измерения ?
И еще. Совпадают ли типы единиц измерения - единица в документе и базовая ?
---
ну вот поменял и он выводит

```1c
    НСтрк.ЕдиницаИзмерения = Справочники.Номенклатура.НайтиПоНаименованию(Excel.Cells(СтрокаОтсчета, 2).Text, Истина).ЕдиницаДляОтчетов;
```

Но теперь новый вопрос. Как вывести коэффициент
---
Но теперь новый вопрос. Как вывести коэффициентЕсли в таблице коэффициента нет, то вероятно:

 НСтрк.Коэффициент =1;

или что-то в этом роде.
---
Какая конфигурация?
---
Комплексная автоматизация, редакция 1.1 (1.1.25.2)
---
```1c
    НСтрк.ЕдиницаИзмерения = Справочники.Номенклатура.НайтиПоНаименованию(Excel.Cells(СтрокаОтсчета, 2).Text, Истина).БазоваяЕдиницаИзмерения.Наименование;
```

а по Справочники.Номенклатура.НайтиПоНаименованию(Excel.Cells(СтрокаОтсчета, 2).Text, Истина) номенклатура находится ?
Если находится, то есть ли у этой номенклатуры базовая единица измерения ?
И еще. Совпадают ли типы единиц измерения - единица в документе и базовая ?
---
Если не правильно то подскажите пожалуйста как нужно
---
ну вот поменял и он выводит

```1c
    НСтрк.ЕдиницаИзмерения = Справочники.Номенклатура.НайтиПоНаименованию(Excel.Cells(СтрокаОтсчета, 2).Text, Истина).ЕдиницаДляОтчетов;
```

Но теперь новый вопрос. Как вывести коэффициент
---
Но теперь новый вопрос. Как вывести коэффициентЕсли в таблице коэффициента нет, то вероятно:

 НСтрк.Коэффициент =1;

или что-то в этом роде.
---
Ну да. На данный момент так и написал, просто когда в ручную делаешь то он сам ставится.
---
просто когда в ручную делаешь то он сам ставитсяТак в конфигурации написано.
---
Спасибо большое и за этом
---
Я, к сожалению не знаю, как сделано в КА 1.1 (у меня нет этой конфигурации). Я просто предлагаю это проверить.
---
Новый вопрос.
Простите за такую сверх тупость
Как правильно создать номенклатуру? Когда так ее создаю то у нее единица измерения только в базовом значении = шт, но если уже потом в нее захожу прописываю артикул и закрываю ее, то у нее автоматически остальные значения заполняются

```1c
    СозданныеДокументы = Новый Соответствие;
    Для СтрокаОтсчета = 2 по КоличествоСтрок Цикл
    //Номенклатура = "Системный блок" + " " + Excel.Cells(СтрокаОтсчета, 4).Text;
    Номенклатура = Excel.Cells(СтрокаОтсчета, 4).Text;
    НовыйОбъект = СозданныеДокументы[Номенклатура];
    Если НовыйОбъект = Неопределено Тогда
    НовыйОбъект = Справочники.Номенклатура.СоздатьЭлемент();
    НовыйОбъект.Наименование = Номенклатура;
    НовыйОбъект.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("ОС",Истина);
    //НовыйОбъект.Артикул = "1";
    НовыйОбъект.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт", Истина);
    //НовыйОбъект.ЕдиницаДляОтчетов = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина);
    //НовыйОбъект.ЕдиницаИзмеренияМест = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина);
    //НовыйОбъект.ЕдиницаХраненияОстатков = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина);
    НовыйОбъект.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | Номенклатура.Наименование КАК Наименование
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    | Номенклатура.Наименование = &Наименование" ;

    Запрос.УстановитьПараметр("Наименование", Номенклатура);

    ВФ = Запрос.Выполнить().Выбрать();
    Если НЕ ВФ.Следующий() тогда
    Попытка
    НовДоговр = Справочники.Номенклатура.СоздатьЭлемент();
    НовДоговр.Наименование = Номенклатура;
    НовыйОбъект.Записать();
    Сообщить("Создан и заполнен Номенклатура " + НовДоговр.Наименование);
    Исключение
    Сообщить("НЕ Создан и заполнен Номенклатура " + НовДоговр.Наименование, СтатусСообщения.Важное);
    КонецПопытки;;
    КонецЕсли;;
    КонецЕсли;
    КонецЦикла;
```
---
По тексту у вас должны заполняться: наименование, вид номенклатуры, базовая единица и ставка НДС. Другого не указано. А в конфигурации остальные реквизиты указываются по умолчанию.
---
Простите если отвлек своей тупостью
Вот что на данный момент, то что создает и проводит. А создание номенклатуры не менял.

```1c
    Если МассивКолонок.Количество() <> 0 и МассивКолонок.НайтиСтроки(Новый Структура("НазваниеКолонки", "Номенклатура")).Количество() <> 0 Тогда
    Склад = Справочники.Склады.Ячейка;

    СозданныеДокументы = Новый Соответствие;

    Для СтрокаОтсчета = 2 по КоличествоСтрок Цикл
    Номенклатура= Справочники.Номенклатура.НайтиПоНаименованию(Excel.Cells(СтрокаОтсчета, 4).Text, Истина);
    НовыйДокумент = СозданныеДокументы[Номенклатура];

    Если НовыйДокумент = Неопределено Тогда

    НовыйДокумент = Документы.КомплектацияНоменклатуры.СоздатьДокумент();
    НовыйДокумент.Дата = ТекущаяДата();
    НовыйДокумент.Организация = Справочники.Организации.НайтиПоНаименованию("ИВС-СЕТИ,ЗАО", Истина); //Объект.Организация;
    НовыйДокумент.ВидКомплектации = Перечисления.ВидыКомплектации.Сборка;
    НовыйДокумент.Склад = Склад;
    НовыйДокумент.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Excel.Cells(СтрокаОтсчета, 4).Text, Истина);
    НовыйДокумент.Количество = "1";
    НовыйДокумент.Коэффициент = "1";
    НовыйДокумент.ОтражатьВБухгалтерскомУчете = Истина;
    //НовыйДокумент.ЕдиницаИзмерения = Справочники.Номенклатура.НайтиПоНаименованию(Excel.Cells(СтрокаОтсчета, 4).Text, Истина).ЕдиницаДляОтчетов;
    НовыйДокумент.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина);
    НовыйДокумент.ВидОперации = Перечисления.ВидыОперацийКомплектацияНоменклатуры.КомплектацияНоменклатуры;
    НовыйДокумент.НДСвСтоимостиТоваров = Перечисления.ДействиеНДСВСтоимостиТоваров.НеИзменять;
    НовыйДокумент.СчетУчетаБУ = ПланыСчетов.Хозрасчетный.НайтиПоНаименованию("Товары на складах", Истина);

    СозданныеДокументы.Вставить(Номенклатура,НовыйДокумент);
    КонецЕсли;

    Если Excel.Cells(СтрокаОтсчета, 9).Value = 1 Тогда
    НСтрк = НовыйДокумент.Комплектующие.Добавить();
    Для каждого СтрокаМассив из МассивКолонок Цикл

    ТекущееЗначение = Excel.Cells(СтрокаОтсчета, СтрокаМассив.НомерКолонки).Value;
    НСтрк.Количество = "1";
    НСтрк.ЕдиницаИзмерения = Справочники.Номенклатура.НайтиПоНаименованию(Excel.Cells(СтрокаОтсчета, 2).Text, Истина).ЕдиницаДляОтчетов;
    НСтрк.Коэффициент = "1";
    НСтрк.СчетУчетаБУ = ПланыСчетов.Хозрасчетный.НайтиПоНаименованию("Товары на складах", Истина);
    ИмяКолонки = Excel.Cells(1, СтрокаМассив.НомерКолонки).Text;
    Если ИмяКолонки = "Номенклатура" Тогда
    НСтрк.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Excel.Cells(СтрокаОтсчета, 2).Text, Истина); //Объект.Номенклатура;
    //ИначеЕсли ИмяКолонки = "КоличествоОстатокУУ" Тогда
    // НСтрк.Количество = ТекущееЗначение;

    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;

    Для каждого КлючИЗначение из СозданныеДокументы Цикл
    НовыйДокумент = КлючИЗначение.Значение;
    НовыйДокумент.Записать();

    Сообщить("Создан и заполнен документ " + Строка(НовыйДокумент));
    КонецЦикла;
    Иначе
    Сообщить("В Excel файле не достаточно данных для заполнения документа!");
    КонецЕсли;
```
---
Вот что на данный момент, то что создает и проводит. А создание номенклатуры не менял. Я что-то запутался. Кто (что) "создает и проводит"? Хорошо бы видеть еще и файл, из которого загружаются данные.
---
этой обработкой создается документ на основе экселя
до того как не спросил у меня не получалось провести данный док, теперь работает
---
теперь работаетНу и хорошо !