Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Запись данных в excel

Запись данных в excel
Я
   olgakrylova86
 
23.10.19 - 11:34
Всем добрый день! В общем есть вот такой код:

&НаКлиенте
Процедура Команда1(Команда)
                                                                    
    ИтоговыйФайл = "%USERPROFILE%\Desktop]art_2.xls";

    Эксель = Новый COMОбъект("Excel.Application");
    Книга = Эксель.WorkBooks.Open("%USERPROFILE%\Desktop\art_.xls");
    Эксель.ScreenUpdating = 0;
    Эксель.Calculation = -4135;
    Лист = Книга.WorkSheets(1);
    RangeAll = Книга.ActiveSheet.UsedRange;

    КолВоСтрок = RangeAll.Rows.Count;

    УдаленнаяЧасть = "";

    Для i = 1 По КолВоСтрок Цикл
        Модель = "Модель";
        Длина = СтрДлина(Лист.Cells(i, 2).value);
        ПоискМодель = Найти(Лист.Cells(i, 2).value, Модель);
        Лист.Cells(i, 2).value = Mid(Лист.Cells(i, 2).value, ПоискМодель, Длина);
            Если i > КолВоСтрок Тогда
                    Прервать;
            КонецЕсли;
    КонецЦикла;    

    Для j = 1 По КолВоСтрок Цикл
        
        Модель = Лист.Cells(j, 2).value;
        Длина = СтрДлина(Лист.Cells(j, 2).value);
        ПоискПробела = Найти(Модель, " ");
        
        Характеристика = Mid(Модель, ПоискПробела - 1 + ПоискПробела, Длина);
        Модель = СтрЗаменить(Модель, ШКХарактеристика, "");
        
        Если j > КолВоСтрок Тогда
                    Прервать;
            КонецЕсли;
    КонецЦикла;

    Для k = 1 По КолВоСтрок Цикл
        Лист.Cells(k, 4).value = ШКХарактеристика;
        Лист.Cells(k, 3).value = ШКМодель;
        Лист.Cells(k, 1).NumberFormat="0";
            Если k > КолВоСтрок Тогда
                Прервать;
            КонецЕсли;
    КонецЦикла;

    Лист.UsedRange.Worksheet.Columns("B:B").Delete(-4159);

    Эксель.DisplayAlerts=0;
    Книга.SaveAs(ИтоговыйФайл,-4143);
    Книга.Close();
    Эксель.DisplayAlerts=1;
    Эксель.Quit();
КонецПроцедуры

Для чего он мне? Что бы разобрать колонку "B"
Исходный вариант https://i.imgur.com/Hzj9vvx.png
Но при сохранении данные записываються одинаковые
Итоговый вариант https://i.imgur.com/Hzj9vvx.png
Подскажите пожалуйта где у меня ошибка или чего не хватает!
 
 
   olgakrylova86
 
1 - 23.10.19 - 11:36
Приношу извинения вот скриншот итогового  файла https://i.imgur.com/FP8MqVc.png
   evgeniy_n
 
2 - 23.10.19 - 12:13
У Вас цикл по переменной k работает отдельно. когда ШКХарактеристика и ШКМодель уже определены в предыдущем цикле.
Надо, видимо, строки из цикла k вставить в предыдущий цикл (цикл по k не нужен).
   evgeniy_n
 
3 - 23.10.19 - 12:14
Или массивы используйте (для ШКХарактеристика и ШКМодель).
   Chum
 
4 - 23.10.19 - 12:16
(0) ничего не смущает в полном имени файла итогового?
    ИтоговыйФайл = "%USERPROFILE%\Desktop]art_2.xls";

Для сравнения полное имя файла исходного
    Книга = Эксель.WorkBooks.Open("%USERPROFILE%\Desktop\art_.xls");
   olgakrylova86
 
5 - 23.10.19 - 12:19
(2) спасибо , да цикл с "k" не нужен
   olgakrylova86
 
6 - 23.10.19 - 12:19
(4) а если ты еще пресмотришься то 
Характеристика = Mid(Модель, ПоискПробела - 1 + ПоискПробела, Длина);
        Модель = СтрЗаменить(Модель, ШКХарактеристика, "");
        
        Если j > КолВоСтрок Тогда
                    Прервать;
            КонецЕсли;
    КонецЦикла;

    Для k = 1 По КолВоСтрок Цикл
        Лист.Cells(k, 4).value = ШКХарактеристика;
        Лист.Cells(k, 3).value = ШКМодель;
        Лист.Cells(k, 1).NumberFormat="0";
            Если k > КолВоСтрок Тогда
                Прервать;
            КонецЕсли;
    КонецЦикла;

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.