Имя: Пароль:
1C
 
Удаление элементов массива с условием
,
0 Licklove4
 
16.12.18
20:25
Добрый день. Начал недавно учить 1с. Бьюсь над заданием уже 3ий день.
подскажите пожалуйста , что не так.
Суть задания : Создать Массив с помощью цикла с числами от 1 до 30
а затем , ИМЕННО после создания массива еще одним циклом удалить числа и массива кратные 3 ( 3 , 6 ,  9 и т д ).

Вот мой вариант:
Счетчик = 0;

Массив = Новый Массив;

Для Счетчик = 0 По 30 Цикл
    Массив.Добавить(Счетчик);
КонецЦикла;

Для каждого ЭлементМассива из Массив Цикл
    Если ЭлементМассива%3 = 0 тогда
        Массив.Удалить(ЭлементМассива);
    Иначе
        ЭлементМассива = ЭлементМассива + 1;
    КонецЕсли;
    Сообщить(ЭлементМассива);
КонецЦикла;

Были и еще варианты ,Но каждый раз в отладчике я получаю либо ничего, либо что Индекс находится за границами массива.Help
1 Попытка1С
 
16.12.18
20:27
удалять надо в обратном порядке
2 Licklove4
 
16.12.18
20:30
Извините, не могли бы вы продемонстрировать как это пишется, Я не спрашиваю готового решения в виде кода ко всему заданию, меня интересует как прописывается удаление эллементов массива в обратном порядке.
3 Dmitry77
 
16.12.18
20:32
в  яндексе пишешь "1с удаление элементов массива". нажимаешь  искать, просматриваешь ссылки...
4 Попытка1С
 
16.12.18
20:35
5 Licklove4
 
16.12.18
20:35
Ладно закройте тему, я просто уже не хочу срач разводить,вас троллей по интернету хватает. Если бы это было в яндексе , то я бы сюда не написал
6 Licklove4
 
16.12.18
20:36
Попытка1С , Благодярю!
7 Михаил Козлов
 
16.12.18
20:39
Можно еще отобрать нужные элементы, а потом удалить их.
кУдалению = Новый Массив;
ДЛЯ каждого эл ИЗ Массив Цикл
  Если эл%3 = 0 Тогда кУдалению.Добавить(эл); КонецЕсли;
КонецЦикла;
ДЛЯ каждого эл ИЗ кУдалению Цикл
  Массив. Удалить(эл);
КонецЦикла;
8 Попытка1С
 
16.12.18
20:40
(5) Ты плохо искал..
9 Dmitry77
 
16.12.18
20:44
(5) первая же ссылка из  поиска
v8: Как правильно удалять элементы из массива в цикле?

там  даже  из  ЖКК написано:

Удаление элементов коллекции в цикле
--------------------------------------------------------------------------------
При необходимости удаления некоторых элементов из какой-либо коллекции элементов, обладающей свойством неявного сдвига элементов при удалении (например, таблица значений, набор записей регистра и т.д.), необходимо использовать следующий алгоритм:

КолвоЭлементовКоллекции = Коллекция.Количество();
Для ОбратныйИндекс = 1 По КолвоЭлементовКоллекции Цикл
     ЭлементКоллекции = Коллекция[КолвоЭлементовКоллекции - ОбратныйИндекс];

     Если <Условие> Тогда
          Коллекция.Удалить(ЭлементКоллекции);
     КонецЕсли;

КонецЦикла;


Где Коллекция – обрабатываемая коллекция элементов.
10 Licklove4
 
16.12.18
20:48
Михаил Козлов и остальные , еще раз спасибо.
пойду дальше трудиться
хорошего дня
11 Licklove4
 
16.12.18
20:54
Михаил Козлов по вашему примеру выходит так же что в недиапазона индекс :)
12 Zhuravlik
 
16.12.18
21:58
(0) ошибка "Создать Массив с помощью цикла с числами от 1 до 30 " <> Для Счетчик = 0 По 30 Цикл

(11) Вграница() вместо Количество()