Имя: Пароль:
1C
1С v8
1с обработка из Excel в 1с
0 Vaicheslav
 
28.02.18
09:41
Добрый день/вечер.
Помогите пожалуйста. Столкнулся с такой проблемой, есть Excel файл в нем есть колонка "Группа" и многие другие, в этой группе есть данные с наименование "Архив" и "Не продавать", как сделать так чтобы эти строки не выгружались в таблицу 1с обработки.
Я конечно понимаю что это не сложно, но я не могу понять как это  сделать, заранее спасибо.
Вот код который я выгружаю из Excel в 1с обработку
------------------------------------------------------------------
Процедура ЗагрузитьИзExel(Команда)
    
    Объект.ТабличнаяЧастьДанные.Очистить();
    
    Состояние("Открыть Excel файл...");
    
    Если СокрЛП(Объект.ИмяФайла) = "" Тогда
        Сообщить("Не найден файл!", СтатусСообщения.ОченьВажное);
        Возврат
    КонецЕсли;
    
    Попытка
        Excel = Новый COMОбъект("Excel.Application");
    Исключение
        Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.");
        Возврат;
    КонецПопытки;
    
    Excel.WorkBooks.Open(СокрЛП(Объект.ИмяФайла));
    Состояние("Открытие файла" +Объект.ИмяФайла+"");
    
    КоличествоЛистов = Excel.Sheets.Count;
    
    КолонкаГруппы                = 1;
    КолонкаАртикул              = 2;
    КолонкаКодМодификации       = 40;
    КолонкаНаименование         = 3;
    КолонкаЕдИзмерениеВеса      = 6;
    КолонкаСтавкаНДС            = 35;
    КолонкаРознечнаяСтавкаНДС   = 35;
    
    Для НомераЛиста = 1 По КоличествоЛистов Цикл
        
        Состояние("Обработка листа №"+НомераЛиста+" из всего листов: "+КоличествоЛистов+"", 25);
        Excel.Sheets(НомераЛиста).select();
        
        Версия = Лев(Excel.Version, Найти(Excel.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(СтрокаЕксель, КолонкаНаименование).Value)) Тогда
                Прервать;
            КонецЕсли;
            
            //Если ЗначениеЗаполнено(СокрЛП(Excel.Cells(СтрокаЕксель, КолонкаГруппы).Value)) = "Архив" тогда
            //    break;
            //КонецЕсли;
            
            НовСтр = Объект.ТабличнаяЧастьДанные.Добавить();
            НовСтр.Группа = СокрЛП(Excel.Cells(СтрокаЕксель, КолонкаГруппы).Value);
              НовСтр.Артикул = СокрЛП(Excel.Cells(СтрокаЕксель, КолонкаАртикул).Value);
            НовСтр.КодМодиФикации = СокрЛП(Excel.Cells(СтрокаЕксель, КолонкаКодМодификации).Value);
            НовСтр.Наименование = СокрЛП(Excel.Cells(СтрокаЕксель, КолонкаНаименование).Value);
            НовСтр.ЕдИзмерениеВеса = СокрЛП(Excel.Cells(СтрокаЕксель, КолонкаЕдИзмерениеВеса).Value);
            НовСтр.СтавкаНДС = СокрЛП(Excel.Cells(СтрокаЕксель, КолонкаСтавкаНДС).Value);
            НовСтр.РознечнаяСтавкаНДС = СокрЛП(Excel.Cells(СтрокаЕксель, КолонкаРознечнаяСтавкаНДС).Value);
            
        КонецЦикла;
    КонецЦикла;

    Состояние("ЗакрытьExcel...");
    Excel.Activeworkbook.Close();
    Excel = Неопределено;
        
КонецПроцедуры
1 Vovik
 
28.02.18
09:42
Если я правильно понял - то зацепиться за оформление групп (цвет, размер шрифта) или содержание. И сделать условие
2 Vaicheslav
 
28.02.18
09:51
Да надо выбрать по содержанию, я конечно могу сделать выборку когда буду загружать в базу, но мне бы хотелось чтобы оно сразу отбиралась из Excel но я пробовал по разному и ни как не получалось

Если ЗначениеЗаполнено(СокрЛП(Excel.Cells(СтрокаЕксель, КолонкаГруппы).Value)) = "Архив" тогда
    break;
КонецЕсли;

или я не правильно делаю или что не могу понять.
3 catena
 
28.02.18
09:55
Продолжить;
4 Vaicheslav
 
28.02.18
09:56
Пробовал не помогало, и писал так же "Прервать" такой же результат, выгружало все из Excel
5 hhhh
 
28.02.18
09:56
(2) ЗначениеЗаполнено( - это булево: истина или ложь, оно не может равняться "Архив", вы какую-то очень странную строчку написали.
6 Evgenchik
 
28.02.18
09:58
ЗначениеГруппы = СокрЛП(Excel.Cells(СтрокаЕксель, КолонкаГруппы).Value);
Если ЗначениеГруппы = "Архив" тогда
    Продолжить;
КонецЕсли;
7 Vaicheslav
 
28.02.18
10:04
(6) Оо все сработало, большое Вам спасибо
8 catena
 
28.02.18
10:36
(7)Как же ты тогда пробовал до этого? Я прям теряюсь, как его еще можно использовать.