8.х Как удалить строку в таблие через внешнюю обработку

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем MyNameNoName, 4 дек 2013.

  1. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте. Я в документе последовательно прохожу в таблице все строки и при наступлении определенного события хочу чтобы эта строка удалялась Как это сделать?
    Код:
    Для Каждого Элемент Из Таблица Цикл
    //Элемент.
    КонецЦикла;
    
    В этом цикле я могу только поменять значения, а как удалить текущую строку?
  2. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    если хотите пройти по таблице циклом Для Каждого, то делайте массив и туда добавляйте строки, которые хотите удалить. после цикла проходите по этому массиву и удаляете строки, которые в него добавили
    Код:
    СтрокиУдалить = Новый Массив;
    Для Каждого СтрокаТаблицы Из Таблица Цикл
    Если ЭтуСтрокуНадоУдалить Тогда
    СтрокиУдалить.Добавить(СтрокаТаблицы);
    КонецЕсли;
    КонецЦикла;
    Для Каждого СтрокаТаблицы Из СтрокиУдалить Цикл
    Таблица.Удалить(СтрокаТаблицы);
    КонецЦикла;
    но лучше пройти по таблице от последней строки к первой, тогда достаточно одного прохода будет

    Код:
    ИндексСтроки = Таблица.Количество()-1; // индекс последней строки
    Пока ИндексСтроки>0 Цикл
    СтрокаТаблицы = Таблица[ИндексСтроки];
    Если ЭтуСтрокуНадоУдалить Тогда
    Таблица.Удалить(СтрокаТаблицы);
    КонецЕсли;
    ИндексСтроки = ИндексСтроки-1;
    КонецЦикла;

Поделиться этой страницей