PSSL icon indicating copy to clipboard operation
PSSL copied to clipboard

При загрузке табличного документа удаляется строка, если не заполнены первые 3 колонки

Open Alexey-Tihomirov opened this issue 9 months ago • 1 comments

При загрузке табличного документа происходило удаление строки, если не заполнены первые 3 колонки. Внес изменение на проверку всей строки. Если заполнена хотя бы одна колонка то строка остается.

Было:

	ИмяКолонки1 = ТЗ.Колонки[0].Имя;
	ИмяКолонки2 = ТЗ.Колонки[1].Имя;
	ИмяКолонки3 = ТЗ.Колонки[2].Имя;
	КоличествоСтрок = ТЗ.Количество() - 1;
	Пока КоличествоСтрок >= 0 Цикл
		СтрокаТаблицы = ТЗ[КоличествоСтрок];
		Если ПустаяСтрока(СтрокаТаблицы[ИмяКолонки1])
			И ПустаяСтрока(СтрокаТаблицы[ИмяКолонки2])
			И ПустаяСтрока(СтрокаТаблицы[ИмяКолонки3]) Тогда
			ТЗ.Удалить(СтрокаТаблицы);
		КонецЕсли;
		КоличествоСтрок = КоличествоСтрок - 1;
	КонецЦикла;

Стало:

	КоличествоСтрок = ТЗ.Количество() - 1;
	Пока КоличествоСтрок >= 0 Цикл
		
		УдалитьСтроку = Истина;
		
		СтрокаТаблицы = ТЗ[КоличествоСтрок];
		
		Для Каждого Колонка Из ТЗ.Колонки Цикл
			
			Если ТипЗнч(СтрокаТаблицы[Колонка.Имя]) = Тип("Число") Тогда
				Если СтрокаТаблицы[Колонка.Имя] <> 0 Тогда
					УдалитьСтроку = Ложь;
				КонецЕсли;
			Иначе
				Если Не ПустаяСтрока(СтрокаТаблицы[Колонка.Имя]) Тогда
					УдалитьСтроку = Ложь;
				КонецЕсли;
			КонецЕсли;
			
		КонецЦикла;
		
		Если УдалитьСтроку Тогда
			ТЗ.Удалить(СтрокаТаблицы);
		КонецЕсли;
		
		КоличествоСтрок = КоличествоСтрок - 1;
		
	КонецЦикла;

Alexey-Tihomirov avatar May 23 '25 09:05 Alexey-Tihomirov

При загрузке табличного документа происходило удаление строки, если не заполнены первые 3 колонки. Внес изменение на проверку всей строки. Если заполнена хотя бы одна колонка то строка остается.

Было:

ИмяКолонки1 = ТЗ.Колонки[0].Имя; ИмяКолонки2 = ТЗ.Колонки[1].Имя; ИмяКолонки3 = ТЗ.Колонки[2].Имя; КоличествоСтрок = ТЗ.Количество() - 1; Пока КоличествоСтрок >= 0 Цикл СтрокаТаблицы = ТЗ[КоличествоСтрок]; Если ПустаяСтрока(СтрокаТаблицы[ИмяКолонки1]) И ПустаяСтрока(СтрокаТаблицы[ИмяКолонки2]) И ПустаяСтрока(СтрокаТаблицы[ИмяКолонки3]) Тогда ТЗ.Удалить(СтрокаТаблицы); КонецЕсли; КоличествоСтрок = КоличествоСтрок - 1; КонецЦикла; Стало:

КоличествоСтрок = ТЗ.Количество() - 1; Пока КоличествоСтрок >= 0 Цикл

  УдалитьСтроку = Истина;
  
  СтрокаТаблицы = ТЗ[КоличествоСтрок];
  
  Для Каждого Колонка Из ТЗ.Колонки Цикл
  	
  	Если ТипЗнч(СтрокаТаблицы[Колонка.Имя]) = Тип("Число") Тогда
  		Если СтрокаТаблицы[Колонка.Имя] <> 0 Тогда
  			УдалитьСтроку = Ложь;
  		КонецЕсли;
  	Иначе
  		Если Не ПустаяСтрока(СтрокаТаблицы[Колонка.Имя]) Тогда
  			УдалитьСтроку = Ложь;
  		КонецЕсли;
  	КонецЕсли;
  	
  КонецЦикла;
  
  Если УдалитьСтроку Тогда
  	ТЗ.Удалить(СтрокаТаблицы);
  КонецЕсли;
  
  КоличествоСтрок = КоличествоСтрок - 1;
  

КонецЦикла;

Лёш так сделай пул реквест)

ivanmolodec avatar May 23 '25 09:05 ivanmolodec