#2
by rasswet
либо от последней строки к первой и удаляешь, либо при обычном обходе бросаешь строки в массив, потом его обходишь и удаляешь.
#3
by Фокусник
1. Поместить в массив при первом обходе. Перебирать массив, удалять строки 2. Обход с конца: для сч = -ТЗ.Количество по -1 Цикл ...
#8
by Hans
я никогда не помню с чего начинаются элементы в 1С - с нуля или с единицы. Помоему некоторые начинаются с нуля, некоторые с единицы.
#11
by tdm
потому что мы бежим по коллекции значений которую еще и удаляем)) - например вы позиционируетесь на 3 строке по условию её удаляете и переходите к 4 строке! т.е. пропускаете строку которая раньше была 4 а стала 3)...а массивом строк к удалению железобетонно не пролетите лишних
#12
by zak555
купи записную книгу для 8ки не пойдёт ? так глупо использовать массив -- лишнее действие проще сразу пройтись с конца
#13
by Serg_1960
"Напомните алгоритм" - напоминаю :) главная страница форума, кнопка "Поиск" - строка "Удаление строк из табличной части". Успехов!
#14
by Фокусник
ИМХО, иногда через массив нагляднее, иногда просто удобнее, иногда нужно много разных алгоритмов отбора выполнить, а результат всех отборов запомнить в одном массиве и только потом удалять. Иногда нужно не удалять, а как-либо обработать эти строки. И т.д. и т.п. :) Иногда массив - это результат НайтиСтроки :)
#17
by tdm
есть платформенный метод - НайтиСтроки работает быстро и полученный массив удалить...а так проще изначально ТЗ получать уже готовую запросом
#18
by Kyon8
В 8-ке обычно через итераторы обход, индекс ненагядно, тем более в обратном порядке 1С не поддерживает нормальный синтаксис обхода. Через массив более простой и понятный код и не нужно помнить про обратный порядок и т.д..
#23
by ArgonPrime
Вот меня всегда удивляло, почему именно эта простейшая задача и именно почему-то для 1с-ников становится камнем преткновения и изобретается наибольшее количество велосипедов с костылями ;-)
#24
by ArgonPrime
+22 Хотя нет, прошу прощения, алгоритм в в принципе аналогичен в - быстро проглядев не заметил Продолжить; Человек же просил алгоритм, а не готовый код, я думаю перевод с 7.7 на 8 проблем-то не должен представлять.
#27
by zak555
1. с чего это ковнокод ? 2. Очистить -- удаляет ВСЕ строки из ТЗ, а в 0 нужно по условию
#31
by ИС-2
не люблю алгоритмы удаления. Предпочитаю добавить колонку "УдалитьСтроку", заполнить где надо в Истину и заново создать таблицу оставив строки которые не надо удалять
#32
by PLUT
конечно г.внокод)) обход коллекции для Каждого - не г.внокод а если по условию - то запросом или НайтиСтроки и удалить строки из массива
#34
by ArgonPrime
Я не думаю, что ТС не знает как полностью очистить ТЗ и спрашивает про специальный алгоритм для этого, тем более в он уточнил, что ему требуется именно удаление по условию.
#36
by zak555
и ? обходим с конца и удаляем, то что подходит по условию не знаю, что быстрее работает нужно замерять
#37
by ArgonPrime
Представляю что будет, если с таким подходом писать ту же Windows или платформу 1C ;-)
#40
by f_vadim
кстати в , кмк, некорректно условие строки в цикле удаляются, количество строк уменьшается
#42
by Эмбеддер
если удалять с конца, можно пользоваться нормальным циклом "для i=..." если удалять с начала, то только "пока ... цикл" и теоретически еще 1-й вариант для больших таблиц, когда удаляешь большую часть данных будет работать быстрее)))
#46
by ArgonPrime
Вообще если есть трудности с пониманием "замороченных" алгоритмов, то самый простой для понимания метод - это создать новую ТЗ, скопировать туда только нужные строки, а старую удалить. Но это КодКоторыйНеприятноПахнет ;-)
#48
by ArgonPrime
Твой код аналогиче коду в , а вот использовать идею из на мой взгля вряд ли стоит.
#51
by Тонкий Клиент
я кстати сделал почти как в код действительно работает, хотя и не полностью пригоден для копипасты. В итоге у меня так получилось
#52
by Полотенчик
а он и не будет считать каждый раз. после первого раза закеширует и будет использовать это значение
#56
by Полотенчик
сделай таблицу из 3 строк сделай Для НомерСтроки = 1 по Таблица.Количество Цикл в цикле добавь, например, 10 строк посмотри сколько раз сработает цикл
#58
by acsent
Это вообще мелочи как удалять: с конца или через массив. Не там вы прикладываете силы для оптимизации
#59
by Timon1405
Проверил, цикл "Для ..Цикл" действительно выполняется Таблица.Количество раз. Но если использовать "Пока цикл"(с добавлением 10 строк), с инкрементом НомерСтроки в конце цикла(а тут в примерах таких циклов большинство), то вылетает в бесконечность.
#60
by ИС-2
если большой объем данных, то циклы противопоказаны. В этом случае лучше использовать запросы для фильтрации таблицы а что плохого в копировании туда-сюда? Отлаживается горазло проще, чем удаление строк.
#62
by ИС-2
можно выделить 3 варианты удаления ненужных строк: 1) Цикл с удалением строк 2) Цикл с установкой признака "Удалять" и копированием таблицы 3) Фильтрация в запросе какой их способов нравиться больше и почему?
#63
by Полотенчик
3) - таблицу надо записать в ВТ? нафиг тормзной ХДД дергать если можно все сделать в оперативке?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Напомните по к-ву одновременно открытых файлов (ограничение ОС)
- Создание ТЗ с вложенными ТЗ на основании плоской ТЗ методом группир. по колонкам
- Самый быстрый алгоритм удаления строк из ТЗ
- ТЗ.Свернуть для ТЗ в ТЗ
- Алгоритм обхода файла эксель. Нид доработка.
- Алгоритм удаления помеченных объектов
- напомните как скопировать тз в другую тз
В этой группе 1С
- v8: ЗУП, В отпуск во время декрета,
- Ну заколебался уже с Период, НачалоПериода и КонецПериода в СКД
- Конвертация Данных - Очередность выгрузки
- СКД и расчет остатков по регистратору.
- Ошибка: Не указан параметр "Статья брак в производстве" учетной политики!
- Проверка на несколько значений
- Конвертация данных 1С 8.2 в 1с 7.7
- БП 3.0. После перехода БП с 2.0 на 3.0 появились проблемы с обменом (с УТ 11.1)
- Как правильно готовиться к профу ?
- v7: Обойти в цикле все метаданные ?
- 1с8 ЗУП заполнение таб части справочника должности
- 8.1 удаление помеченных объектов (много) - как?
- ВПФ на БСП
- Импорт xml файла в виде дерева значений
- R keeper или 1С Трактир
- ЗУП 2.5 округление результата предопределенного вида расчета
- Конечный остаток не равен начальному остатку следующего периода
- Округление до целого в табличной части документа КА 1.1.46
- Запрос с двумя группировками
- FTPСоединение и web-клиент