HelpF.pro

Удаление строк из табличной части документа, все или по условию.

Удалить все строки табличного поля документа.
Код 1C v 8.х
  ОтражениеВУчете.Очистить(); // ОтражениеВУчете - название табличного поля    



Как в табличной части документа удалить строки только с нулевым значением реквизита "Количество"?
Код 1C v 8.х
  //Получим документ и укажем параметры поиска
ОбъектДок = СсылкаДок.ПолучитьОбъект();
СтруктураДляПоиска = Новый Структура("Количество", 0);
ТабличнаяЧастьДок = ОбъектДок.Товары;
//Получаем список строк соответсвтвующих отбору, и перебором удаляем.
МассивПустыхСтрок = ТабличнаяЧастьДок.НайтиСтроки(СтруктураДляПоиска);
Для каждого Строка Из МассивПустыхСтрок Цикл
ТабличнаяЧастьДок.Удалить(Строка);
КонецЦикла;
ОбъектДок.Записать(); // Записываем изменения в документе



Как удалить все строки, кроме тех которые соответсвуют заданному отбору?
Код 1C v 8.х
  // Укажем условия отбора: Нужно оставить только строки где СубконтоКт1 = РБПНаПФР	
ПараметрыОтбора = Новый Структура("СубконтоКт1", Справочники.РасходыБудущихПериодов.РБПНаПФР);
//Теперь выгружаем табличную часть в таблицу значений
ТЗисходн=ОтражениеВУчете.Выгрузить();
//Скопируем ТЗ с заданным отбором в новую ТЗ
ТЗнов = ТЗисходн.Скопировать(ПараметрыОтбора);
//Очистим табличную часть
ОтражениеВУчете.Очистить();
//Загружем в табличную часть новую таблицу значений
ОтражениеВУчете.Загрузить(ТЗнов);



В режиме управляемого приложения конструкция:
Код 1C v 8.2 УП
 Для каждого Запись из ТабличнойЧасти Цикл
Если Запись.НадоУдалить Тогда
ТабличнойЧасти.Удалить(Запись);
КонецЕсли;
КонецЦикла;


Работает некорректно, так как переписывает табличную часть и меняет индексы, сразу после удаления и Цикл полностью не обходит.
Решение пришло такое:
Код 1C v 8.2 УП
    КолВо = Объект.ТабличнойЧасти.Количество()-1;
ИндексСтроки = КолВо;
Для счетчик = 0 по КолВо Цикл
Запись = Объект.ТабличнойЧасти.Получить(ИндексСтроки);
если Запись.НадоУдалить тогда
Объект.ТабличнойЧасти.Удалить(Запись);
КонецЕсли;
ИндексСтроки = ИндексСтроки - 1;
КонецЦикла;

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq83/view/515.html