Ребят, всем привет.

Пишу обработку, которая загрузит основные средства в документ "Ввод начальных остатков ОС" (БГУ 2.0) из excel
Толи я где-то в циклах накосячила, то ли еще что-то, но вот у меня есть, например, в экселе 3 строки, где первая - названия колонок, вторая, третья - основные средства.

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

Прилагаю свой код, может кто увидит, поймет в чем моя ошибка.

```1c
    Функция ВыполнитьЗагрузкуНаСервере(АдресХранения);

    Путь = КаталогВременныхФайлов() + "temp.xls";
    Файл = ПолучитьИзВременногоХранилища(АдресХранения);

    Файл.Записать(Путь);

    Попытка
    ОбъектExcel = Новый COMОбъект("Excel.Application");
    Исключение
    Возврат "Ошибка открытия MS Excell";
    КонецПопытки;

    Попытка
    ОбъектExcel = Новый COMОбъект("Excel.Application");
    Исключение
    Возврат "Ошибка открытия MS Excel";
    КонецПопытки;

    Попытка
    ОбъектExcel.WorkBooks.Open(Путь);
    Исключение
    ОбъектExcel.DisplayAlerts = 0;
    ОбъектExcel.Quit();
    ОбъектExcel.DisplayAlerts = 1;

    Возврат "Ошибка открытия файла для чтения: " + Путь;
    КонецПопытки;

    Попытка
    ОбъектExcel.Sheets(1).Select();
    Исключение
    ОбъектExcel.ActiveWorkbook.Close();
    ОбъектExcel = 0;

    Возврат "Ошибка при чтении файла: " + Путь;
    КонецПопытки;

    Version = ОбъектExcel.Version;

    Версия = Лев(Version, Найти(Version,".") - 1 );

    Если Версия = "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;
    Конецесли;

    МассивКолонок = Новый ТаблицаЗначений;
    МассивКолонок.Колонки.Добавить("НомерКолонки");
    МассивКолонок.Колонки.Добавить("НазваниеКолонки");

    Для НК = 2 По ФайлКолонок Цикл
    ИмяКолонки = ОбъектExcel.Cells(1, НК).Text;
    // Удаление лишних пробелов из имен колонок
    ИмяБезПробелов = СтрЗаменить(ИмяКолонки," ",");

    НовСтрока = МассивКолонок.Добавить();
    НовСтрока.НомерКолонки = НК;
    НовСтрока.НазваниеКолонки = ИмяБезПробелов;

    КонецЦикла;

    Если МассивКолонок.Количество() <> 0 Тогда

    Для НС = 1 по ФайлСтрок Цикл

    ДокОстаток = Документы.ВводНачальныхОстатковОС.СоздатьДокумент();
    ДокОстаток.Организация = Организация;
    ДокОстаток.Дата = Дата('2017.12.31');
    ДокОстаток.ИФО = ИФО;
    ДокОстаток.КФО = КФО;
    ДокОстаток.ОтражатьВБухгалтерскомУчете = Истина;
    ДокОстаток.СчетУчетаЗатрат = ПланыСчетов.ЕПСБУ.НайтиПоКоду("401.20");
    ДокОстаток.СчетУчета = СчетУчета;

    ИО = ДокОстаток.ИнвентарныеОбъекты.Добавить();
    ИО.СостояниеОС = СостояниеОС;

    СИА = ДокОстаток.СтоимостьИАмортизация.Добавить();
    СИА.ПорядокПогашенияСтоимости = Перечисления.ПорядокПогашенияСтоимостиОС.НачислениеАмортизации;

    Для Каждого СтрокаМассив из МассивКолонок Цикл

    ТекущееЗначение = ОбъектExcel.Cells(ФайлСтрок, СтрокаМассив.НомерКолонки).Text;

    ИмяКолонки = ОбъектExcel.Cells(1, СтрокаМассив.НомерКолонки).Text;

    // Заполнение строки данными из эксель
    Если ИмяКолонки = "Основное средство" Тогда
    Если ТекущееЗначение <> Строка(Справочники.ОсновныеСредства.НайтиПоНаименованию(ТекущееЗначение, Истина)) Тогда
    ОС = Справочники.ОсновныеСредства.СоздатьЭлемент();
    ОС.Наименование = ТекущееЗначение;
    ОС.ВидНФА = Перечисления.ВидыНФА.ОС;
    ОС.Организация = Организация;
    ОС.Записать();
    ДокОстаток.ОсновноеСредство = Справочники.ОсновныеСредства.НайтиПоНаименованию(ТекущееЗначение, Истина);
    Иначе
    ДокОстаток.ОсновноеСредство = Справочники.ОсновныеСредства.НайтиПоНаименованию(ТекущееЗначение, Истина);
    КонецЕсли

    ИначеЕсли
    ИмяКолонки = "КПС" Тогда
    //Запрос = Новый Запрос;
    //Запрос.Текст = "ВЫБРАТЬ
    // | КлассификационныеПризнакиСчетов.Код КАК Код
    // |ИЗ
    // | Справочник.КлассификационныеПризнакиСчетов КАК КлассификационныеПризнакиСчетов
    // |ГДЕ
    // | КлассификационныеПризнакиСчетов.Ссылка = &Ссылка";
    //Запрос.УстановитьПараметр("Ссылка", ДокОстаток.КПС);
    //Выборка = Запрос.Выполнить().Выбрать();
    //Пока Выборка.Следующий() Цикл
    // Объект = Выборка.Получитьобъект();
    // Объект.Код = ТекущееЗначение;
    ////ДокОстаток.КПС.Код = ТекущееЗначение;
    //КонецЦикла;
    ИначеЕсли
    ИмяКолонки = "Ответственное лицо" Тогда
    Если ТекущееЗначение <> Строка(Справочники.Пользователи.НайтиПоНаименованию(ТекущееЗначение, Истина)) Тогда
    ФЛ = Справочники.Пользователи.СоздатьЭлемент();
    ФЛ.Наименование = ТекущееЗначение;
    ФЛ.Записать();
    ЦМОСПР = Справочники.ЦМО.СоздатьЭлемент();
    ЦМОСПР.Наименование = ТекущееЗначение;
    ИО.ЦМО = ТекущееЗначение;
    Иначе
    ДокОстаток.Ответственный = ТекущееЗначение;
    КонецЕсли;
    ИначеЕсли
    ИмяКолонки = "Дата принятия к учету" Тогда
    ДокОстаток.ДатаПринятияКУчету = Дата(ТекущееЗначение);
    ИО.ДатаВводаВЭксплуатацию = Дата(ТекущееЗначение);
    ИначеЕсли
    ИмяКолонки = "Количество" Тогда
    ДокОстаток.ПервоначальноеКоличество = Число(ТекущееЗначение);
    ИО.Количество = Число(ТекущееЗначение);
    ИначеЕсли
    ИмяКолонки = "Балансовая стоимость" Тогда
    ДокОстаток.ПервоначальнаяСтоимость = Число(ТекущееЗначение);
    ИО.Стоимость = Число(ТекущееЗначение);
    ИначеЕсли
    ИмяКолонки = "Сумма амортизации" Тогда
    ДокОстаток.ПервоначальнаяСуммаАмортизации = Число(ТекущееЗначение);
    ИО.СуммаАмортизации = Число(ТекущееЗначение);
    КонецЕсли;

    ДокОстаток.Записать();
    КонецЦикла;
    КонецЦикла;
    КонецЕсли;

    ОбъектExcel.DisplayAlerts = 0;
    ОбъектExcel.Quit();
    ОбъектExcel.DisplayAlerts = 1;

    КонецФункции
```
---
вот тут
ТекущееЗначение = ОбъектExcel.Cells(ФайлСтрок, СтрокаМассив.НомерКолонки).Text;

вместо файлстрок должен быть наверно НС

не?
---
охота Вам возится с экселем? Есть же табличный документ, он прекрасно работает с этим.
---
Может и не хочется уже =D Но доделать нужно)
А что за Табличный документ?? Вы не заметили ошибки??
---
ну, есть такой объект - ТабличныйДокумент.
обычно его используют для вывода отчетов и печатных форм, но он могет и читать файлики, в частности эксельку.
---
Я нашел ошибку!
Возврат "Ошибка открытия MS Excell";
Excel пишется с одной буквой "l"
---
Это был самый важный комментарий =D
---
вот тут
ТекущееЗначение = ОбъектExcel.Cells(ФайлСтрок, СтрокаМассив.НомерКолонки).Text;

вместо файлстрок должен быть наверно НС

не?
---
Тоже строка показалась подозрительной
---
Спасибо большое!)) Помогло) Не доглядела..)