Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 июл 2021, 06:45

Удаление строки при выгрузке в Excel

Автор Maxim990, 11 ноя 2020, 13:55

0 Пользователей и 1 гость просматривают эту тему.

Maxim990

Имеется обработка по переносу табличной части документа в excel. На данный момент она работает так, что на основе готового прайс листа по артикулу она ищет совпадающие позиции из табличной части и записывает их количество, формируя при этом новую книгу на основе прайс листа. Есть ли возможность, чтобы при формировании новой книги чтобы в нее записывались только найденные по артикулы позиции, а не весь лист целиком? Оговорюсь, что это писал не я, мне лишь хочется подправить для своего удобства.

Процедура КоманднаяПанельТоварыВСВХИМ(Кнопка)
        СтруктураПолей = новый Структура;
    СтруктураПолей.Вставить("Номерстр",0);
    СтруктураПолей.Вставить("Артикул",5);
    СтруктураПолей.Вставить("Номенклатура",2);
    СтруктураПолей.Вставить("Колво",6);
   
    Режим=РежимДиалогаВыбораФайла.Открытие;
    Файл=Новый ДиалогВыбораФайла(Режим);
    Файл.Фильтр="Документы Excel(*.xls; *.xlsx)|*.xls; *.xlsx";
    Файл.Заголовок="Выберете файл для обработки";
    Файл.Выбрать();
    ПутьКФайлу = Файл.ПолноеИмяФайла;
   
   
    XLSОбъект = Новый COMОбъект("Excel.Application");
    XLSОбъект.Visible       = Ложь;
    XLSОбъект.DisplayAlerts = Ложь;
   
    Попытка
        Book = XLSОбъект.Workbooks.Open(ПутьКФайлу, , Истина);
        Лист = Book.Sheets(1);
    Исключение
        Сообщить ("Проблемы с подключением к Excel" );
    КонецПопытки;

   
   
    Таблица = Excel_ПолучитьДанные_COM(ПутьКФайлу, СтруктураПолей,0,0,XLSОбъект,Лист);
    Для каждого тек из Товары цикл
        попытка
            СтрП = Строка(Число(тек.Номенклатура.Артикул));
        Исключение
            СтрП = СокрЛП(тек.Номенклатура.Артикул)
        КонецПопытки;
        НайденнаяСтрока = Таблица.Найти(СтрП,"Артикул");
       
         Если НайденнаяСтрока = Неопределено Тогда
            Текст = "Товар не найден! строка:"+ тек.НомерСтроки+ ", Артикул:"+тек.Номенклатура.Артикул;
            Сообщить(Текст);
        Иначе
            Лист.Cells(НайденнаяСтрока.Номерстр, СтруктураПолей.колво).Value = тек.Количество;
            //НайденнаяСтрока.Колво = тек.Количество;
        КонецЕсли;
        //Доб = ТЧ.Добавить();
        //номм = Справочники.Номенклатура.НайтиПоНаименованию(тек.Номенклатура,истина);
        //Доб.Номенклатура = номм;
        //Доб.Кол = тек.колво;
        //Доб.ЕдИзм = номм.БазоваяЕдИзм.Ссылка;
        //Доб.Коэффициент = номм.БазоваяЕдИзм.Коэффициент;
    КонецЦикла;
     Book.SaveAs(Файл.Каталог+"Заказ СВ-ХИМ №"+Номер);
     XLSОбъект.Application.Quit();

КонецПроцедуры

Теги:

Похожие темы (5)

64957

Ответов: 2
Просмотров: 1969

63035

Ответов: 5
Просмотров: 1282

Рейтинг@Mail.ru Rambler's Top100

Поиск