1С Режим Конфигуратор

   купить дом в перу, r i. |     

Удаление строк и колонок из таблицы значений


ТабЗнач.Очистить(); //очистить таблицу значений и удалить колонки

ТабЗнач.УдалитьСтроки(); //удаляет все строки (колонки сохраняются)

ТабЗнач.УдалитьСтроку(); //удаляет текущую строку

ТабЗнач.УдалитьСтроку(3); //удаляет 3-ю строку

ТабЗнач.УдалитьКолонку("Оклад"); //удаляет колонку Оклад

ТабЗнач.УдалитьКолонку(2); //удаляет 2-ю колонку

ВНИМАНИЕ

Часто требуется удалить строки, удовлетворяющие определенному условию.

Так как при удалении строки из таблицы значений следующая строка становится текущей,

то указанная ниже программа может удалить НЕ ВСЕ необходимые строки.

//ЭТА ПРОГРАММА НЕПРАВИЛЬНАЯ !!!

ТабЗнач.ВыбратьСтроки();

Пока ТабЗнач.ПолучитьСтроку()=1 Цикл



...Если <условие> Тогда

......ТабЗнач.УдалитьСтроку(); //следующая строка стала текущей,

...КонецЕсли;

КонецЦикла;

В этом случае я рекомендую использовать следующий прием:

ТабЗнач.ВыбратьСтроки();

Пока ТабЗнач.ПолучитьСтроку()=1 Цикл

~начало:

...Если <условие> Тогда

......ТабЗнач.УдалитьСтроку(); //следующая строка стала текущей

......Если ТабЗнач.НомерСтроки<>0 Тогда

........ Перейти ~начало;

......КонецЕсли;

...КонецЕсли;

КонецЦикла;

А вот еще один правильный алгоритм, предложенный Wlad:

ТабЗнач.выбратьстроки();

Пока ТабЗнач.ПолучитьСтроку()=1 Цикл

.......Пока (<условие>) и (ТабЗнач.НомерСтроки<>0) Цикл

..............ТабЗнач.УдалитьСтроку(); //следующая строка стала текущей

.......КонецЦикла;

КонецЦикла;



Содержание раздела