Вход | Регистрация

1С:Предприятие ::

Метки: 

v7: Загрузка из файла xls

Я
   san4ez1008
 
31.01.18 - 09:51
Доброго времени суток! Чет сижу уже часа 3,понять не могу ничего, загружаю файлик в ТЗ, если пустая строка-продолжаем цикл, если 2 подряд-прерываем обработку. Спотыкается на пустой строке, говорит номер за пределами значения.. строки не соответствуют или что?  
[code]
    Лист=1;
    E = СоздатьОбъект("Excel.Application");
    E.WorkBooks.Open(ФайлСоотв);
       Строк=E.Sheets(Лист).Cells.SpecialCells(11).Row;    // строка последней ячейки 

       //ТЗ=СоздатьОбъект("ТаблицаЗначений");

    ТЗ.НоваяКолонка("ШтрихКод");
    ТЗ.НоваяКолонка("ЦЗак");
    ТЗ.НоваяКолонка("ЦОпт");
    Запомнить=0;    
       Для Стр=1 По Строк Цикл
           Если ПустоеЗначение(E.Sheets(Лист).Cells(Стр+10,10).Value)=1 тогда
               Запомнить=Запомнить+1;
               Если Запомнить>1 тогда
                   Прервать;
               иначе
                   продолжить;
               КОнецЕсли;
           иначе
            ТЗ.НоваяСтрока(Стр);                                                              
            ТЗ.УстановитьЗначение(Стр,"ШтрихКод",СокрЛП(E.Sheets(Лист).Cells(Стр+10,10).Value));
            ТЗ.УстановитьЗначение(Стр,"ЦЗак"    ,СокрЛП(E.Sheets(Лист).Cells(Стр+10,12).Value));
            ТЗ.УстановитьЗначение(Стр,"ЦОпт"    ,СокрЛП(E.Sheets(Лист).Cells(Стр+10,14).Value));
        КонецЕсли;
    КонецЦикла;
[/code]
 
 
   PiterPrg
 
1 - 31.01.18 - 10:02
Что за "ТЗ.НоваяСтрока(Стр)" ?

ТЗ.НоваяСтрока();                                                              
            ТЗ.УстановитьЗначение(ТЗ.НомерСтроки,"ШтрихКод",СокрЛП(E.Sheets(Лист).Cells(Стр+10,10).Value));
   PiterPrg
 
2 - 31.01.18 - 10:06
(1) Пардон, есть. забыл уже клюшки :-)

Но суть та-же. В ТЗ нет строк с количеством Стр
Либо сразу задавай количество строк ТЗ равное "Строк"
А потом просто ПолучитьСтрокуПоНомеру,
Либо как в (1)
   Builder
 
3 - 31.01.18 - 10:08
(0) Сдается мне, цикл прервется на второй пустой строке, даже не подряд.
Ну и где конкретно ошибка то?
   Builder
 
4 - 31.01.18 - 10:09
А так что, не модно уже писать?
ТЗ.НоваяСтрока();
ТЗ.ШтрихКод = СокрЛП(ЧтоТоТам);
   Builder
 
5 - 31.01.18 - 10:15
(0) В условии Иначе добавь
Запомнить=0; 
Надо сбросить счетчик.
   san4ez1008
 
6 - 31.01.18 - 10:15
(1) во,так сработало..
(3) вы правы,это я не обдумал,надо проверить тогда на пустые строки подряд..как так замоделить?
(4) не пробовал еще)
   PiterPrg
 
7 - 31.01.18 - 10:17
(3) Ошибка здесь:

ТЗ.УстановитьЗначение(Стр,"ШтрихКод",СокрЛП(E.Sheets(Лист).Cells(Стр+10,10).Value));
Предположим мы одну строку пропустили, например 3-ю

И на след. шаге
//Стр = 4

ТЗ.НоваяСтрока(Стр);//Стр игнорируется, вставленная строка третья (проверил :-))


В ТЗ 3 строки, Стр = 4, Установить значение вылетает
   Builder
 
8 - 31.01.18 - 10:26
(7) Делай как в (4)
   san4ez1008
 
9 - 31.01.18 - 10:29
(8) все получилось,спасибо!
   vladko
 
10 - 31.01.18 - 10:37
а вообще говоря, в 7.7 тоже есть отладчик. И когда им пользуешься, тогда не возникает таких вопросов.
 
 Рекламное место пустует


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