Удаление элементов из ТЗ. #397909


#0 by golden-pack
Есть ТЗ 100000 элементов. Нужно удалить из ТЗ строчки у которых определенный реквизит > 20 например. Как это можно сделать побыстрее.
#1 by Живой Ископаемый
Читаем у Габца: Как удалить строки (колонки) таблицы значений? ТаблицаЗначений.Удалить(УдаляемаяСтрока);
#2 by Живой Ископаемый
И еще: Как найти значение в таблице значений?
#3 by Живой Ископаемый
находим строки, найденный строки удаляем
#4 by МЮЛЛЕР
В цикле по массиву удаляем строки ТЗ
#5 by 73
Все хорошо, только отбор на равенство. В нужно на >.
#6 by 73
Думаю запросом быстрее всего будет.
#7 by golden-pack
- Спасибо ... но это же обычный перебор. А как запросом то ? Например если 8.0 и менеджера временных таблиц нет...
#8 by 73
В 8.0 запросом не получится. К ТЗ можно только через временную добраться. Ставьте 8.1.
#9 by 73
Через ПостроительЗапроса(Отчета) можно попробовать. ТЗ - ему в ИсточникДанных. У него отбор позволяет ВидСравнения установить.
#10 by 73
+ Хотя в утверждается, что отбор в этом случае работать не будет:(
#11 by golden-pack
Спасибо. Видимо придется перебором делать...
#12 by Синий зуб
Отсортируй по возрастанию этого поля, ищешь первую нужную строку, остатльные тупо удаляешь.
#13 by hhhh
сортировка дольше будеть работать, чем простой обход строк.
#14 by vde69
1. отсортировать 2. копию свернуть и получить количество строк которое надо удалить 3. выгрузит начиная со строчки х
#15 by vde69
долго будет работать удаление 1 строки
#16 by Просто Лёха
А через скопировать с отбором не взлетит?
#17 by vde69
через массив строк?? не знаю, думаю - нет
#18 by 73
Про отбор см. выше. Отбор нужен на >, а в Скопировать только на равенство.
#19 by Просто Лёха
Почему? Мне просто уже самому интересно, щас попробую что-то изобразить аналогичное
#20 by Просто Лёха
Понятно, через массив строк
#21 by 73
СП: Скопировать(<Параметры отбора>, <Колонки>) Параметры: <Параметры отбора> (необязательный) Тип: Структура. Ключ структуры - идентификатор колонки, а значение структуры - значение отбора.
#22 by Просто Лёха
Синтаксис: Скопировать(<Строки>, <Колонки>) Параметры: <Строки> (необязательный) Тип: Массив. Массив строк для копирования. Если не указан, копируются все строки таблицы значений. <Колонки> (необязательный) Тип: Строка. Список колонок для копирования в формате: "Колонка1, Колонка2...".
#23 by Просто Лёха
Через массив строк
#24 by 73
Ну и как массив формировать?
#25 by Просто Лёха
Ну тогда получается только перебором формировать массив, единственный плюс по сравнению с алгоритмом то что не надо обратный цикл делать
#26 by hhhh
еще плюс, что удаление идет долго , а здесь удаления нет.
#27 by 73
И все таки думаю запросом быстрее. Так что вперед, к 8.1.
#28 by 73
Ха. Не поленился попробовать! Через Построитель-то РАБОТАЕТ! Вот код:
#29 by 73
+ Колонка ТЗ, по которой устанавливается отбор должна быть типизирована.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С