Как определить, отрицательное число или нет
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для каждого Строка из ТЗ Цикл
Если не Строка.ПроверяемаяКолонка < 0 Тогда
ТЗ.Удалить(Строка);
КонецЕсли;
КонецЦикла;
0,5 и 0,02 и т.д. то же меньше нуля...
Серьезно?
(4) В таком цикле удаления засада есть. Если в следующей строке после удаленной условие тоже истинно, то цикл её "перескочит". Цикл для удаления лучше делать по индексу в обратном порядке - от последней строки к первой.
(7)
получай в цикле строку таблицу по индексу с конца
получай в цикле строку таблицу по индексу с конца
Количество = ТЗ.Количество();
Пока Количество > 0 Цикл
Если не СтрокаТЗ[Количество-1].ПроверяемаяКолонка < 0 Тогда
ТЗ.Удалить(Строка);
КонецЕсли;
Количество = Количество - 1;
КонецЦикла;
Показать
Я обычно такое делаю в две операции.
Сначала ищу, как хочу, НЕнужные элементы (строки ТЗ) и формирую из них массив. Потом этот массив вместе с ТЗ передаю в свою служебную процедуру, которая удаляет строки из ТЗ.
Сначала ищу, как хочу, НЕнужные элементы (строки ТЗ) и формирую из них массив. Потом этот массив вместе с ТЗ передаю в свою служебную процедуру, которая удаляет строки из ТЗ.
Что за жесть творится...
1. Проходим циклом таблицу значений, строки с показателем меньше 0 суем в массив.
2. Проходим циклом массив, и строки которые в массиве удаляем из таблицы значений.
1. Проходим циклом таблицу значений, строки с показателем меньше 0 суем в массив.
2. Проходим циклом массив, и строки которые в массиве удаляем из таблицы значений.
(15) Это тогда будет два цикла. Я раньше так и делал :)
Такая рекомендация была на ИТС.
Граница = ТЗ.Количество() - 1;
Для Индекс = -Граница по 0 Цикл
Если ТЗ[-Индекс].ТаКолонка < 0 Тогда
ТЗ.Удалить(ТЗ[-Индекс]);
КонецЕсли;
КонецЦикла;
Такая рекомендация была на ИТС.
Топикстартер на сайте 7 лет, специализация - Программист 1С. Тут попахивает троллем.
По теме:
По теме:
Сч = 0;
Пока Сч < ТЗ.Количество() -1 Цикл
Стр = ТЗ.Получить(Сч);
Если Стр.Колонка < 0 Тогда
Сч = Сч + 1;
Иначе
ТЗ.Удалить(Стр);
КонецЕсли;
КонецЦикла;
Показать
Я в 7.7 всегда удалял с конца по индексу, потому как лучше вариантов не было. А в 8-ке я всегда в "для каждого" набираю массив ссылок на строки для удаления и во втором цикле "для каждого" их удаляю. Да, второй цикл. Но второй цикл только по удаляемым. Гораздо читабельнее выглядит. Да и прием более унифицированный. Например, когда можно отобрать ссылки на удаляемые строки через те же НайтиСтроки() и потом удалить тем же самым циклом удаления.
В общем, на вкус и цвет... Но мне так нравится больше. Хорошо же выглядит
В общем, на вкус и цвет... Но мне так нравится больше. Хорошо же выглядит
Для Каждого Строка Из Таблица Цикл
Если ... Тогда
УдаляемыеСтроки.Добавить(Строка);
КонецЕсли;
КонецЦикла;
Для Каждого УдаляемаяСтрока Из УдаляемыеСтроки Цикл
Таблица.Удалить(УдаляемаяСтрока);
КонецЦикла;
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот