|
Как начать перебор элементов табличной части в цикле со второго? | ☑ | ||
---|---|---|---|---|
0
a_x_o_n
03.09.21
✎
13:43
|
Добрый день, мне нужно перебрать все колонки табличной части со второй и удалить их. Я разобрался как перебрать все элементы, но никак не могу найти решение как перебрать с определенной колонки.
Пробовал такой вариант Для ЭлементФормы = Элементы.СписокУчеников.ПодчиненныеЭлементы.Индекс(2) По Элементы.СписокУчеников.ПодчиненныеЭлементы.Количество() Цикл Сообщить(ЭлементФормы); КонецЦикла; |
|||
1
ДенисЧ
03.09.21
✎
13:44
|
фл = Ложь;
Для каждого кол из Элементы.СписокУчеников.ПодчиненныеЭлементы.Количество() Цикл Если НЕ фл Тогда фл = Истина; Продолжить; КонецЕсли; .... КонецЦикла |
|||
2
acht
03.09.21
✎
13:48
|
(1) "кол из Количество()", говоришь...
Ты таки пошел проверять - Колумбия там была или Афганистан? |
|||
3
acht
03.09.21
✎
13:49
|
(0) Возможно тебе нужно удалить все колонки кроме первой, а не "перебрать, начиная со второй"?
|
|||
4
a_x_o_n
03.09.21
✎
13:50
|
(3) Кроме первых двух*
|
|||
5
patapum
03.09.21
✎
13:50
|
(0) Удаляй с конца, пока не останется одна, первая
|
|||
6
ДенисЧ
03.09.21
✎
13:50
|
(2) Копипаст. Что аффтырь написал, то я ему и ответил. Сам пусть разбирается...
|
|||
7
a_x_o_n
03.09.21
✎
13:50
|
Сейчас пытаюсь сделать по методу Дениса
|
|||
8
Обработка
03.09.21
✎
13:51
|
+1! (5)
|
|||
9
lodger
03.09.21
✎
13:51
|
(4) наркоманишь.
запомни ссылки на колонки которые нужны. обходи циклом все, и если текущая колонка = запомненная тогда пропустить. |
|||
10
acht
03.09.21
✎
13:55
|
(9) Усугубим:
НаборЭлементов = Элементы.СписокУчеников.ПодчиненныеЭлементы; СколькоОставить = 1; Пока НаборЭлементов.Количество() > СколькоОставить Цикл Элементы.Удалить(НаборЭлементов.Получить(СколькоОставить)); КонецЦикла; |
|||
11
a_x_o_n
03.09.21
✎
13:57
|
Пытался сделать по методу Дениса, ругается на несоответствие параметра "ЭлементФормы = Элементы.СписокУчеников.ПодчиненныеЭлементы.Индекс(0)"
Для Каждого ЭлементФормы Из Элементы.СписокУчеников.ПодчиненныеЭлементы Цикл НужнаяКолонка = Ложь; Если ЭлементФормы = Элементы.СписокУчеников.ПодчиненныеЭлементы.Индекс(0) ИЛИ ЭлементФормы = Элементы.СписокУчеников.ПодчиненныеЭлементы.Индекс(1) Тогда НужнаяКолонка = Истина; КонецЕсли; Если НЕ НужнаяКолонка Тогда ЭлементФормы.Удалить(); КонецЕсли; КонецЦикла; |
|||
12
a_x_o_n
03.09.21
✎
13:59
|
(10) Спасибо большое, работает
|
|||
13
lodger
03.09.21
✎
14:15
|
(10) не люблю опираться на индексы. хз какие они будут, если после отрисовки формы начали добавлять группы, колонки в хаотичные места.
|
|||
14
lodger
03.09.21
✎
14:16
|
(13) а потом удалили и снова нарисовали.
индексы превысят количество, как обычно. |
|||
15
acht
03.09.21
✎
14:16
|
(13) Тогда ответь на вопрос, что такое "первая колонка" =)
|
|||
16
lodger
03.09.21
✎
14:22
|
(15) для меня, это как минимум "колонка с именем N". потому что ТС заблуждается в формулировке.
|
|||
17
b_ru
03.09.21
✎
14:26
|
1С в школах что ли начали изучать, что с 1 сентября странные вопросы сыплются.
Вообще по постановке задачи надо так: Для й = 1 По Элементы.СписокУчеников.ПодчиненныеЭлементы.Количество() - 1 Цикл Сообщить(Элементы.СписокУчеников.ПодчиненныеЭлементы[й]); КонецЦикла; Но (10) больше похоже на то, что имеет практический смысл |
|||
18
spectre1978
03.09.21
✎
18:04
|
(1) а для каждого гарантирует порядок перебора с первого? У меня есть сомнения на этот счет
|
|||
19
polosov
03.09.21
✎
18:36
|
(18) Точно не гарантирует.
|
|||
20
Вафель
03.09.21
✎
20:26
|
(19) для колекций с доступом по индексу а ля массив, конечно гарантирует
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |