Имя: Пароль:
1C
 
Удаление пустой строки из Таблицы Значений
0 Serdolik55
 
19.10.10
15:20
Приветствую!
Народ такая проблемка! Не могу удалить пустую строку из таблицы значений! Я гружу данные из Excel в ТЗ, и в ТЗ из Excel попадают пустые строки, делаешь свертку(группировку) в результате всё равно это пустая строка в ней сидит. Я из ТЗ справочник заполняю и там создаётся один элемент с пустым наименованием.
Я пытался эту проблему решить так:

Для каждого Стр Из ТЗ Цикл
Если ПустаяСтрока(Стр) Тогда
ТЗ.Удалить(Стр);
КонецЕсли;
КонецЦикла;

//пробовал ещё вот так
Для каждого Стр Из ТЗ Цикл
Если Стр = Неопределено Тогда
ТЗ.Удалить(Стр);
КонецЕсли;
КонецЦикла;

И всё равно в ТЗ эта строка торчит.
Подскажите как правильно её удалить.
1 Нуф-Нуф
 
19.10.10
15:21
а может при загрузки делать проверку на пустые строки?
2 Maxus43
 
19.10.10
15:22
в таком случае цикл с конца ТЗ надо начинать, это раз. во вторых - в ТЗ один столбец проверяй на ПустаяСтрока, например
3 Serdolik55
 
19.10.10
15:32
(2) А как с конца?
А на ПустаяСтрока это так?

Для каждого Стр Из ТЗ Цикл
Если ПустаяСтрока(Стр) Тогда
ТЗ.Удалить(Стр);
КонецЕсли;
КонецЦикла;

Если да, то не получается
4 butterbean
 
19.10.10
15:33
(3) проще просто не загружать пустые
5 Просто Лёха
 
19.10.10
15:35
Вариантов очень много:
1) Не грузить пустые строки
2) Через ТЗ.НайтиСтроки(СтруктураОтбора)
3) Обратным перебором
4) Через временные таблицы и запрос
6 Maxus43
 
19.10.10
15:36
Для й = -ТЗ.Количество() ПО 0 Цикл
.....
Если НЕ ЗначениеЗаполнено(ТЗ[й].КакойТоСтолбец) Тогда
....
7 Просто Лёха
 
19.10.10
15:36
(5) Ещё можно скопировать одну ТЗ в другую со Структурой отбора
8 Serdolik55
 
19.10.10
15:38
(4) Пробовал, всё равно грузит в Справочник пустой элемент:
Вот код:
Для каждого Стр Из ТЗУслуга Цикл
       Если Не ПустаяСтрока(Стр) Тогда
       Спр = Справочники.Номенклатура.СоздатьЭлемент();
       Спр.Наименование =СокрЛП(Стр.Услуга);
       Спр.НаименованиеПолное = СокрЛП(Стр.Услуга);
       Спр.Услуга = Истина;
       Спр.Родитель = Группа.Ссылка;
       Спр.Записать();
       КонецЕсли;
       КонецЦикла;
9 AgainTwenty Five
 
19.10.10
15:39
i=ТЗ.Количество();                                                                                                            
   Пока i>0 Цикл
       Если ПустаяСтрока(ТЗ[i-1].ТвояКолонка) Тогда
           ТЗ.Удалить(i-1);
       КонецЕсли;    
       i=i-1;
   КонецЦикла;
10 73
 
19.10.10
15:41
(8) Ну сколько тебе ещё говорить, что проверять на пустоту надо не всю Стр, а какую-либо(либо все) ёё колонку.
11 AgainTwenty Five
 
19.10.10
15:41
СтруктураОтбора = Новый Структура("ТвояКолонка", "");
   ПодходящиеСтроки = ТЗ.НайтиСтроки(СтруктураОтбора);
   Если НЕ ПодходящиеСтроки.Количество()=0 Тогда
       Для Каждого ОчереднаяСтрока Из ПодходящиеСтроки Цикл
           ТЗ.Удалить(ОчереднаяСтрока);
       КонецЦикла;
   КонецЕсли;
12 butterbean
 
19.10.10
15:43
(8) проверяй ПустаяСтрока(Стр.Услуга)
13 Serdolik55
 
19.10.10
15:46
(11) Спасибо огромное! Получилось!