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

1. Reflection0504 02.11.24 01:19 Сейчас в теме
Стоит задача: "Сделать выгрузку из Эксель файла". У меня не получается удалить лишние строки после самой выгрузки, удаляется только одна.

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


СтрокиДляУдаления = Новый Массив;
Для Каждого CтрТз из ДанныеФайла Цикл
    Если СтрТз.Сумма="" Тогда
        СтрокиДляУдаления.Добавить(CтрТз);
    КонецЕсли;
КонецЦикла;   

Для Каждого CтрТз из СтрокиДляУдаления Цикл 
    ДанныеФайла.Удалить(CтрТз);    
    КонецЦикла;
Показать
По теме из базы знаний
Найденные решения
2. independ 1557 02.11.24 02:00 Сейчас в теме
(1)
Для Стр=2 по ВысСтрок Цикл
   Сумма=ТабДок.Область(Стр,5).Текст;
   Если Сумма="" Тогда 
      Продолжить;
   КонецЕсли;
   СтрТз=ДанныеФайла.Добавить();
   ...
   СтрТз.Сумма=Сумма;

p.s.
Запрос в таком виде вернет все документы, вероятно нужен отбор условие по конкретному документу (ссылке) или по какому-то другому реквизиту
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. independ 1557 02.11.24 02:00 Сейчас в теме
(1)
Для Стр=2 по ВысСтрок Цикл
   Сумма=ТабДок.Область(Стр,5).Текст;
   Если Сумма="" Тогда 
      Продолжить;
   КонецЕсли;
   СтрТз=ДанныеФайла.Добавить();
   ...
   СтрТз.Сумма=Сумма;

p.s.
Запрос в таком виде вернет все документы, вероятно нужен отбор условие по конкретному документу (ссылке) или по какому-то другому реквизиту
3. Reflection0504 02.11.24 02:19 Сейчас в теме
(2) Могу сделать отбор по сотрудникам, после того как проверю, есть ли все сотрудники из файла в базе данных, но не будет ли 1 в 1 ситуация той, о который вы пишите?
4. LeeAreHim 02.11.24 08:49 Сейчас в теме
(1) А если попробовать свернуть ТЗ ДанныеФайла по всем полям перед удалением?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот