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

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

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


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

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

p.s.
Запрос в таком виде вернет все документы, вероятно нужен отбор условие по конкретному документу (ссылке) или по какому-то другому реквизиту
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. independ 1551 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) А если попробовать свернуть ТЗ ДанныеФайла по всем полям перед удалением?
Оставьте свое сообщение

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