Как удалить строки из таблицы значений по некоторому условию (1С: 8.1: Программисту: Таблица значений)

Вопрос Как удалить строки из таблицы значений по некоторому условию
Ответ
Предположим, есть таблица значений ТЗ:

Колонка1 Колонка2 Колонка3
1 11 234
2 22 456
3 33 765
4 22 340
5 55 456

Предположим, требуется из этой таблицы удалить все строки, у которых значение колонки 2 не равно 22.

Эта задача в 1С v8 легко решается с помощью механизма отборов. Программный код, решающий задачу:

стрОтбор = Новый Структура("Колока2",22);

МассивСтрок = ТЗ.НайтиСтроки(стрОтбор); // в этом массиве останутся строки 2 и 4, т.е. в результате получим массив строк таблицы значений, соответствующих условиям поиска. Важно! Такой массив хранит ссылки на строки таблицы значений, то есть при изменении строки в таблице, значение в массиве тоже будет измененным.

ВремТЗ = ТЗ.Скопировать(МассивСтрок); // копируем массив строк во временную таблицу значений

ТЗ.Очистить(); // удаляем все строки из ТЗ

ТЗ = ВремТЗ.Скопировать(); // копируем всю временную таблицу значений в нашу ТЗ

7 thoughts on “Как удалить строки из таблицы значений по некоторому условию (1С: 8.1: Программисту: Таблица значений)

  1. Ага очень красиво, а если нужно значение второй колонки меньше 22???
    а строк тысяча!!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *