Имя: Пароль:
1C
 
как удалить колонки таблицы значений
0 SuperLiving Star
 
20.01.10
12:09
получаю таблицу значений в которой необходимо удалить колонки за их ненадобностью так как в них нет числовой информации, допустим в таблице 25 колонок и нужно удалить все после 5й (1-5 не числовые) или только 17ю и 22....
|
у меня не получается
|
Для каждого Колонка Из ТабСотрОрг.Колонки Цикл
   Если ТабСотрОрг.Итог(Колонка) = 0 Тогда
       Инд = ТабСотрОрг.Колонки.Индекс(Колонка);
       ТабСотрОрг.Колонки.Удалить(ТабСотрОрг.Колонки.Индекс(Колонка));
       ТабСотрОрг.Колонки.Сдвинуть(Инд + 1,1);
   КонецЕсли;
КонецЦикла;
1 Лефмихалыч
 
20.01.10
12:12
блин, ну это ж децкий сад... целых два варианта:
1. идти по колонкам задом наперед
2. сначала пройти по всем колонкам и собрать в массив не нужные, а потом в цикле по этому массиву поудалять колонки
.......  Стаж: 4 г. 2 мес.
2 Рэйв
 
20.01.10
12:15
ТЗ2=ТЗ1.СкопироватьКолонки("Раз,Два")
3 Рэйв
 
20.01.10
12:16
+ 2 Лёвыч

Стаж: 5 г. 4 мес.  
:)
4 AleGol
 
20.01.10
12:20
ТабСотрОрг.Колонки.Удалить(Колонка.Имя)
5 Лефмихалыч
 
20.01.10
12:22
(3) СкопироватьКолонки() возвращает пустую таблицу (без строк)
6 SuperLiving Star
 
20.01.10
12:27
(3) про ваше изображение вообще молчу.....
7 Рэйв
 
20.01.10
12:28
(5)Беру свои слова назад и посыпаю голову пеплом:))
8 Рэйв
 
20.01.10
12:29
(6)Разрешаю молчать и не больше смотреть:))
9 SuperLiving Star
 
20.01.10
12:32
(4) и реально по имени удалить колонки по очереди или в разноброс, и все Ок?
10 Лефмихалыч
 
20.01.10
12:34
(9) правильный ответ в (1). Ин факт, их там два даже
11 SuperLiving Star
 
20.01.10
12:39
(4) не не удаляет, то же что и с индексом...
в обратном порядке будет правельнее удаление...
12 SuperLiving Star
 
20.01.10
12:48
(10) в обратном порядке затрудняюсь....
попробую через массив!!!
13 Лефмихалыч
 
20.01.10
12:49
о, у меня чай кончился! пойду заварю свежего!
14 Лефмихалыч
 
20.01.10
12:49
заварил, приступаю к работе!
15 Лефмихалыч
 
20.01.10
12:49
работаю!
16 Лефмихалыч
 
20.01.10
12:49
устал
17 SuperLiving Star
 
20.01.10
12:53
пробую!
|
// Исключить пустые колонки в таблице для вывода
НаУдаление = Новый Массив;
Для каждого Колонка Из ТабСотрОрг.Колонки Цикл
   Если ТабСотрОрг.Итог(Колонка) = 0 Тогда
       НаУдаление.Добавить(ТабСотрОрг.Колонки.Индекс(Колонка));        
   КонецЕсли;
КонецЦикла;
Для каждого СтрМас Из НаУдаление Цикл
   ТабСотрОрг.Колонки.Удалить(СтрМас);
КонецЦикла;
18 SuperLiving Star
 
20.01.10
12:56
мне во всех случаях получалось удалять только первую числовую колонку (((
19 SuperLiving Star
 
20.01.10
12:59
// Исключить пустые колонки в таблице для вывода
НаУдаление = Новый Массив;
Для каждого Колонка Из ТабСотрОрг.Колонки Цикл
   Если ТабСотрОрг.Итог(Колонка) = 0 Тогда
       //НаУдаление.Добавить(ТабСотрОрг.Колонки.Индекс(Колонка));        
       НаУдаление.Добавить(Колонка);
   КонецЕсли;
КонецЦикла;
Для каждого СтрМас Из НаУдаление Цикл
   ТабСотрОрг.Колонки.Удалить(СтрМас);
КонецЦикла;
20 Лефмихалыч
 
20.01.10
13:01
(17) ты думай ПЕРЕД тем, как делать, а не ВО ВРЕМЯ:

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

и с условием "Если ТабСотрОрг.Итог(Колонка) = 0 Тогда" надо что-то делать - оно сделано из уныния и отчаяния