#5
by vcv
Сейчас кто-нибудь предложит вариант в пару строчек с использованием индексированной таблицы :)
#15
by Has
см.на проклабе Конкурс: самый быстрый вариант удаления ненужных строк из Таблицы Значений или см. в общем виде: Для Индекс = -ТЗ.КоличествоСтрок По -1 Цикл
#16
by drongo-god
Получать и удалять строки нужно по индексу. Только нужно учитывать что при удалении строки общее количество индексов уменьшается. Соответственно и индекс следующей строки после удаленной будет таким же как у только что удаленной строки.
#20
by drongo-god
Хотя вариант с обходом ТЗ с конца к началу более симпатичный. Мой метод будет быстрее тогда когда мы можем сначала правильно отсортировать ТЗ и найти первый нужный индекс удаляемой строки. И выходить из цикла когда условие не истина. Тогда всю ТЗ не надо пробегать. Не универсально, но лучше всего (по скорости) подходит когда нужно удалить строки с определенным признаком.
#24
by vcv
Самый простой в сильно страдает от плохой читабельности. А посему некошерен при сколько-нибудь серьёзном проекте с N разработчиками и текучкой кадров.
#29
by vcv
Если точно известно, что удаляемых строк мало, возможно и так. При большой таблице и большом количестве удаляемых строк будет не только проще, но еще и медленней, и печальней.
#30
by Сияющий Асинхраль
Ничем не более плохочитаем по сравнение со всем остальным, я бы сказал даже запоминается лучше ибо неожиданно и красиво. Скажем метод NS как самый быстрый тоже не очень то читаем, но используется часто, ибо скорость нужна...
#32
by vcv
Два вложенных цикла делают один обход таблицы значений построчно. Используется некошерная особенность 1С, что получение атрибута таблицы при невыбранной строке возвращает пустое значение вместо фатальной ошибки. Используется недокументированное поведение 1С в случае удаления последней строки таблицы (позиционирование строки после удаления текущей). Да, я нуден, но неужели вы это называете хорошим стилей программирования?
#33
by Сияющий Асинхраль
Да, вариант я называю хорошим стилем программирования, ибо Красиво. Если ты не видишь этой красоты, то извини, о вкусах не спорят...
#34
by Сияющий Асинхраль
+ Если уж на то пошло, то вариант NS тоже использует именно особенности 1С, тем не менее ты вряд ли будешь утверждать, что он некошерен...
#35
by Simod
Какие особенности? Все варианты с УдалитьСтроку годятся только для ТЗ < 100 строк, ибо медленно.
#36
by vcv
Я ж не про красоту. А про читабельность. Попробуй проведи эксперимент - отлови Nцать произвольных 1Сников и спроси их, что делает этот код. На мой взгляд, если у заметного количества опрошенных время на правильный ответ займёт больше нескольких секунд - код плохой. И это еще идеальный выхолощенный вариант, когда примитивое однострочное условие на удаление и нет каких-то других выполняемых действий в цикле.
#40
by Сияющий Асинхраль
вот въехать в запрос на восьмерке на тысячу строчек с кучей подзапросов трудно, а если кто-то понять не может пару вложенных циклов, то зря в 1с пошел...
#41
by KRV
Зачем? Не ешьте что не надо.. мешает - выгрузите в другую таблицу.. заодно и от лишней поиибени избавитесь.. ох уж эти восьмершники.. - даже не представляют, что адинасс умеет и на 128 метрах памяти с целкой 500-й работать..
#42
by Эльниньо
Многие крутые одинэсники сходу смеялись над ним, потом извинялись. И что теперь - писать код в расчёте на будущих прогеров тугодумов?
#43
by ХомаБрут
подумайте на досуге, может быть лучше котёнка с дерева снять, чем услаждать своё самомнение сложностью написанного кода?
#45
by NikVars
Проще - не проще... Совсем забыли, что речь в :"v7: Как правильно удалить строки таблицы значений". Там утверждается, что правильно так, как в . Разошлись... А вопрос никто и не задавал.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- v7: v7 : НДС при возврате
- Удалить строки из таблицы значений
- Правильно удалить пользователя из ТиС v7
- v7: Что нужно чтоб подключить ККМ Меркурий 112F к 1с V7 Торговля + склад
- v7: v7.7 премещение элемента справочника
- v7: Невозможно удалить сохраненную проводку
- v7: v8: v7: Кто-нибудь сумел скачать комплект отчетности за I квартал 2007 года
- v7: Как правильно удалять строки при выборке тз ?
- Как в 8.0 удалить из таблицы значений строки по условию?
- v7: Как правильно учесть НДС с возврата аванса?
- v7: Как правильно закрыть 25 счет
- v7: 1С7.7 Таблицы значений - Выгрузить и удалить ненужные строки
В этой группе 1С
- Запрос временные таблицы левое соединение
- Интеграция 1С и АТС ОКТЕЛЛ
- Где в правилах правильнее переопределить выгружаемый объект.
- УНФ, владелец партии, кто это?
- Не пересчитываются удержания после сторнирования в ЗУП
- Удаление задвоенных строк ТЧ 1с 8.2
- Отказ в проведении если не нажали кнопку заполнить
- Платежное поручение входящее проведение
- v7: Unrecognized field name
- Подключение ТСД Casio-IT600 к УТ 10.3
- Масштабировать размер окна. Тонкий и веб-клиент
- Microsoft Dynamics NAV vs 1c vs sap
- выгрузка транзакции за определённый период
- 1с развернуть таблицу по строкам и колонкам как в скд программно
- v8: Имитация Среза последних
- Бух 2.0 (8.2) Недостаточно памяти при тестировании и обновлении.
- Полнотекстовый поиск по регистру сведений
- Отбор по периоду в периодическом регистре сведений
- УПП:Установка базы распределения затрат
- v7: ТИС ДБФ Непонятный сбой 1С 7.7. под win2008 R2 в терминальном режиме